UNIXLinux环境高级编程.ppt

UNIXLinux环境高级编程.ppt

ID:50962328

大小:425.00 KB

页数:41页

时间:2020-03-16

UNIXLinux环境高级编程.ppt_第1页
UNIXLinux环境高级编程.ppt_第2页
UNIXLinux环境高级编程.ppt_第3页
UNIXLinux环境高级编程.ppt_第4页
UNIXLinux环境高级编程.ppt_第5页
资源描述:

《UNIXLinux环境高级编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、低级文件I/O系统调用open()read()write()lseek()dup()dup2()fcntl()lockf()flock()ioctl()close()文件描述当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用open或creat返回的文件描述符标识该文件,将其作为参数传送给read、write、lseek和close等。按照惯例,UNIXshell使文件描述符:0-stdin1-stdout2-stderr在POSIX.1应用程序中,标准I/O描述符被定义为:0-STDIN_FI

2、LENO;1-STDOUT_FILENO;2-STDERR_FILENO这些常数都定义在头文件中。文件描述符的范围是0~OPEN_MAX。早期的UNIX版本采用的上限值是19(即20),现在很多系统则将其增加至256且可以以内核参数的办法设置,比方说1024。原始系统数据类型在UNIX/Linux的开发过程中用到的以_t结尾的数据为系统原始数据。系统原始数据在头文件中被定义。出错处理UNIX函数出错时,往常返回一个负值,而且整型变量errno通常设置为具有特定信息的一个值。例如,open函

3、数如成功执行则返回一个非负文件描述符,如出错则返回-1。在open出错时,有大约15种不同的errno值。某些函数并不返回负值而是使用另一种约定。例如,返回一个指向对象的指针的大多数函数,在出错时,将返回一个null指针(NULL)。文件中定义了变量errno以及可以赋与它的各种常数。这些常数都以E开头。在Linux系统中,errno定义在头文件/usr/include/asm/errno.h,多达124条。errnoPOSIX定义errno为:externinterrno;对于errno应当知道两条规则:1:如果没

4、有出错,则其值不会被一个例程清除。因此,仅当函数的返回值指明出错时,才检验其值。2:任一函数都不会将errno值设置为0,在中定义的所有常数都不为0。错误处理的标准函数strerror():功能:以字符串方式打印错误信息。用法:#includechar*strerror(interrnum);返回:指向消息字符串的指针。perror()功能:在标准错误上产生一条基于其参数串和errno的当前值出错消息。用法:#includevoidperror(constchar*msg);输出

5、:首先输出由msg指向的字符串,然后是一个冒号,一个空格,然后是对应于errno值的出错信息,然后是一个新行符。处理错误的示例1#include#includemain(intargc,char*argv[]){fprintf(stderr,"EACCES=%d:%s",EACCES,strerror(EACCES));errno=ENOENT;perror(argv[0]);}结果:假设,编译后生成a.out,则输出为:EACCES=13:Permissiondenied./a.out:Nos

6、uchfileordirectory处理错误的示例2#include#includemain(intargc,char*argv[]){inti,fd;for(i=1;i#include#includein

7、topen(constchar*name,intoflag);intopen(constchar*ame,intoflag,mode_tmode);返回值:成功时为文件描述符,出错则为-1。出错时errno被设置。open的参数pathname是要打开或创建的文件的名字。oflag参数可用来说明此函数的多个选择项。用下列一个或多个常数进行或运算构成oflag参数(在fcntl.h中):•O_RDONLY:只读打开。•O_WRONLY:只写打开。•O_RDWR:读写打开•O_APPEND:追加方式。•O_CREAT:若不存在则创建它。需

8、同时使用第三个参数mode。•O_EXCL:如果同时指定了O_CREAT,而文件已经存在,则出错。这可测试一个文件是否存在,如果不存在则创建此文件成为一个原子操作。•O_TRUNC:果此文件存在,则将其长度截短为0。•O

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。