UNIX环境高级编程——第三章

来源:互联网 发布:淘宝一元拍网址 编辑:程序博客网 时间:2024/04/30 16:13

由于作者才开始接触unix不久,属于菜鸟级别,如果有错误或者其他见解,欢迎大家评论,谢谢。

1.头文件的配置(第三版)

在http://www.apuebook.com/上下载源代码,将源代码(文件名为apue.3e)解压到/usr/include/下,然后到/usr/include/apue.3e/lib下将error.h复制到/usr/include下,将/usr/include/apue.3e/include/apue.h复制到/usr/include下,然后在apue.h中#endif前 加一句#include"error.c ",现在自学到第四单元,还没出现问题。

2.文件描述符

其实我自己认为这个可以理解为文件的一个“数字外号“”,而且这个外号在很多函数中要多要用到。其中有三个特殊的文件描述符0,1,2.

在头文件<unisted.h>(位于/usr/include/unistd.h)中将这三个数进行了宏定义,如下图代码。

/* Standard file descriptors.  */#define STDIN_FILENO    0       /* Standard input.  */#define STDOUT_FILENO   1       /* Standard output.  */#define STDERR_FILENO   2       /* Standard error output.  */

3.感觉函数的参数太多了,所以i就只记一部分,等回头看第二或者用到的时候再看。

I/0函数

(1)int      open(文件路径,打开方式(只读,只写...),其他参数......)
(2)int      creat(文件路径,文件访问权限)

#前两个都是用路径打开,返回文件描述符,其余的都得通过这两个函数获取文件描述符进而操作
(3)int      close(文件描述符)
(4)off_t    lseek(文件描述符,文件偏移量,偏移方式)
(5)sszie_t  read(文件描述符,读入的字符串,读取的字符个数)
(6)ssize_t  write(文件描述符,写入的字符串,写入的字符个数)
#改变文件描述符,新旧文件描述符同时指向同一个文件表
(7)int      dup(要被替换的文件描述符)
(8)int      dup2(要被替换的文件描述符,新的文件描述符)
#缓存区数据写入,sync在缓存块排入写入队列后离开,fsync在写入后离开,fsync包括文件的数据和属性,fdatasync只包括数据
(10)void     sync(void)
(11)int      fsync(缓存区要写入的文件的描述符)
(12)int      fdatafsync(缓存区要写入的文件的描述符)

(13)int      fcntl(文件描述符,命令,不同命令所带的参数X)

复制已有的文件描述符          F_DUPFD(返回的值大于X)                                   F_DUPFD_CLOEXEC(暂时还没搞懂)

获取/复制文件描述符             F_GETFD(不懂)                                                      F_SETFD(将X设定为文件描述符)

获取/复制文件状态标志         F_GETFL(返回该描述符文件的可读写性)           F_SETFL(将文件的其他状态设置,还是不懂)





0 0