代码#include
#include
#include
#include
#include
#include
#define MSG_TRY "try again\n"
#define MSG_TIMEOUT "timeout\n"
int main(void)
{
char buf[10];
int fd, n, i;
fd = open("/dev/tty", O_RDONLY|O_NONBLOCK);
if(fd<0)
{
perror("open /dev/tty");
exit(1);
}
for(i=0; i<5; i++)
{
n = read(fd, buf, 10);
if(n>=0)
break;
if(errno!=EAGAIN)
{
perror("read /dev/tty");
exit(1);
}
sleep(1);
write(STDOUT_FILENO, MSG_TRY, strlen(MSG_TRY));
}
if(i==5)
write(STDOUT_FILENO, MSG_TIMEOUT, strlen(MSG_TIMEOUT));
else
write(STDOUT_FILENO, buf, n);
close(fd);
return 0;
}
open函数可以打开或创建一个文件,成功返回新分配文件描述符,失败返回值为-1并设置errno。定义