STDIN_FILENO和stdin的区别

近日读到unix环境高级编程中第十15章协作进程一结,不理解figure15.18父进程和子进程使用了不同的输入输出表示方式,帮google之

STDIN_FILENO是系统调用所使用的,是属于系统API接口库,是一个int型的数字,如果要使用它,需要使用open, close, read, close这些底程调用,而fopen, fclose, fscanf, fread, fwrite这些函数则处理的是FILE*类型的文件指针, 而stdin就是一种FILE*, 一般对应键盘标准输入设备, 属于标准I/O

stdin在stdio.h中定义

STDIN_FILENO是在unistd.h中定义

也就是说,两者调用的层级不一样

你可能感兴趣的:(c,unix)