【Linux入门学习】《UNIX环境高级编程》第3版 学习笔记(二)第2章~第3章 | 您所在的位置:网站首页 › linux标准错误文件 › 【Linux入门学习】《UNIX环境高级编程》第3版 学习笔记(二)第2章~第3章 |
第2章 UNIX标准三个标准 ANSI C、POSIX.1和XPG3 两个实现SVR4和4.3+BSD 第3章 文件 I/O常用的5个函数open、read、write、lseek 以及close 文件描述符当读、写一个文件时,用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。 UNIX shell使文件描述符0与进程的标准输入相结合,文件描述符1与标准输出相结合,文件描述符2与标准出错输出相结合。 幻数由写程序的人按自己意愿确定的数。在POSIX.1应用程序中,幻数0、1、2应被代换成符号常数STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO。这些常数都定义在头文件中。文件位移量off_t lseek(int filedes, off_t offset, int whence);(whence:何处)若whence是SEEK_SET,则将该文件的位移量设置为距文件开始处offset 个字节。(绝对位移量)若whence是SEEK_CUR,则将该文件的位移量设置为其当前值加offset, offset可为正或负。(相对于当前位置的位移量)若whence是SEEK_END,则将该文件的位移量设置为文件长度加offset, offset可为正或负。(相对文件尾端的位移量)打开文件的内核数据结构原子操作(atomic operation):指的是由多步组成的操作。或者执行完所有步,或者一步也不执行。 复制文件描述符int dup(int filedes); (= fcntl (filedes, F_DUPFD, 0);)int dup2(int filedes, int filedes2);(= {close(filedes2); fcntl(filedes, F_DUPFD, filedes2);})由dup返回的新文件描述符一定是当前可用文件描述符中的最小数值。用dup2则可以用filedes2 参数指定新描述符的数值。如果filedes2已经打开,则先将其关闭。如若filedes等于filedes2,则dup2返回filedes2,而不关闭它。/dev/fd某些系统提供路径名/dev/stdin,/dev/stdout和/dev/stderr。这些等效于/dev/fd/0,/dev/fd/1和/dev/fd/2。cat(1)程序将命令行中的一个单独的-特别解释为一个输入文件名,该文件指的是标准输入。等价于/dev/fd/0。 |
CopyRight 2018-2019 实验室设备网 版权所有 |