本文主要是介绍AUP学习笔记--基本的I/O系统调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在读高级unix编程一书,没事就写写总结吧,把一些重点内容记录下来,以后要复习或者找资料的话还可以省点时间,闲话不多说,unix下系统编程我想跟Linux下的应该没什么区别,一般说来我会直接在linux下进行实验,说到这里,前些天把自己的本整成了双系统,分了六十G给fedora16,使用GNOME3感觉很清爽,界面也很炫,一些工作上用到的toolchain也配置好了,还以为有多么复杂,没想到只需要改个路径就可以~!这章的内容应该是在十天前看的,主要内容也就是几个系统调用函数的使用,包括open/creat/close/read/write/lseek/umask/unlink,这些应该是用的比较多的了,其他的比如pread/pwrite/readv/writev这几个好像见得不多,没有太细看,大概知道是干嘛的,下面具体说说这几个函数的用法:
1.open
#include <sys/stat.h>
#include <fcntl.h>/* Return fd or -1 on error,set errno */
int open(const char *path, /* file path name */ int flags, /* open flags */mode_t perms /* permissions(when creating) */);
可以用open来打开一个已经存在的文件(普通文件、特殊文件或命名管道)或者创建一个新的文件,但只能创建普通文件。文件一旦打开的话,open以及相关的read、write、lseek、close调用就可以使用返回的文件描述符。
flags的取值:
O_RDONLY 以只读方式打开文件,O_WRONLY 以只写方式打开文件,O_RDWR 以可读写方式打开文件
对于一个已经存在的文件,参数perms是没有用的,通常省略,文件偏移量(读写用到的)位于文件的第一个字节,比如打开一个存在的文件:
int fd;
fd = open("/home/rudyn/tmpfile", O_RDONLY);
用open创建一个新的文件,需要在flags中加入标志O_CREATE,当然还要结合O_WRONLY或者O_RDWR一起用,不然的话创建的文件就是个只读的,意义不大,这个时候perms参数就要用得上了:
fd = open("/home/rudyn/tmpfile", O_RDWR | O_CREATE, PERM_FILE);
这篇关于AUP学习笔记--基本的I/O系统调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!