Привет!
Решил посмотреть, как работать с терминалами на C в линуксе. Открываю терминал /dev/tty0 с помощью open() и читаю оттуда в буфер с помощью read() - мне вываливается куча галиматьи. А как собственно считывать ввод пользователя с терминала, причем с терминала, к которому данная программа не относится(т.е. не /dev/tty)?
Дайте, пожалуйста, ссылок на доки и примеры.
Вот мой код:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
int main(int argc, char *argv[])
{
int term;
char buf[255];
term = open("/dev/tty0", O_RDWR | O_NOCTTY | O_NDELAY);
while(read(term, buf, sizeof(buf)-1))
for(int i = 0; i < sizeof(buf) - 1; i++)
printf("%c", buf[i]);
return EXIT_SUCCESS;
}