【Linux入门学习】《UNIX环境高级编程》第3版 学习笔记(二)第2章~第3章 您所在的位置:网站首页 linux标准错误文件 【Linux入门学习】《UNIX环境高级编程》第3版 学习笔记(二)第2章~第3章

【Linux入门学习】《UNIX环境高级编程》第3版 学习笔记(二)第2章~第3章

2023-03-28 14:26| 来源: 网络整理| 查看: 265

第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 实验室设备网 版权所有