Вот простой пример программы, который иллюстрирует ответ Стефана Шазеласа с использованием lseek (2)
на входе:
#include
#include
#include
int main(void)
{
int c;
off_t off;
off = lseek(0, 10, SEEK_SET);
if (off == -1)
{
perror("Error");
return -1;
}
c = getchar();
printf("%c\n", c);
}
Тестирование:
$ make seek
cc seek.c -o seek
$ cat foo
abcdefghijklmnopqrstuwxyz
$ ./seek < foo
k
$ ./seek < abcdefghijklmnopqrstuvwxyz
> EOF
k
$ cat foo | ./seek
Error: Illegal seek
Каналы недоступны для поиска, и это единственное место, где программа может пожаловаться на каналы.
Существует удобная программа под названием KeyRemap4MacBook , которая позволит вам сделать это.