输入和输出
文件描述符
他呢通常是一个小的非负整数,内核用它标识一个特定进程正在访问文件;一般内核打开或者创建新文件的时候,就返回一个文件描述符给进程,进程读写文件就可以用它。
标准输入、标准输出和标准出错
在程序运行之初的时候,shell就为进程打开默认的三个文件描述符:标准输入(standard input)、标准输出(standard output)以及标准出错(standard error)。如果执行程序时没有使用任何输入输出(比如:“>”、“<”、“|”等)那这三个文件描述符都是连接到终端的,也就是说会输出到终端、等待终端输入、返回错误给终端输出。
不带缓冲的I/O
函数open、read、write、lseek以及close提供了不用缓冲的I/O。这些函数都是用文件描述符。
下面的代码是书里提供的,其实就是简单的cat命令:
使用gcc -c mycat.c -o mycat.o;gcc mycat.o apue.o -o mycat编译源码,运行结果:
标准I/O
函数printf、fprintf、sprintf和标准C库中的文件操作函数都属于带缓冲标准I/O,具体区别不带缓冲和带缓冲I/O函数的区别,书里后面提到了,到时再说,也可以百度一下。
gcc -c mycat1.c -o mycat1.o;gcc mycat1.o apue.o -o mycat1编译源码,运行结果:
上篇忘了把代码传上来了,在这补上
apue2e_src.rar
阅读(2206) | 评论(0) | 转发(0) |