qfedu-linux-advanced-level/day2/d1.c

21 lines
679 B
C
Raw Permalink Normal View History

2023-08-15 19:05:13 +08:00
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
// 修改标准的输入设备的标识为非阻塞
int flags = fcntl(STDIN_FILENO, F_GETFL);
flags |= O_NONBLOCK; // 添加非阻塞标识,可以注释这一行来测试不同的效果
fcntl(STDIN_FILENO, F_SETFL, flags);
char buf[32] = "";
printf("准备读取数据......\n");
// read 默认是阻塞的,如果没有数据,会一直等待
// 接收到一个回车read就会返回
ssize_t len = read(STDIN_FILENO, buf, sizeof(buf));
printf("读取的内容为:%s\n", buf);
return 0;
}