linux文件的通用操作方法学习

王朝学院·作者佚名  2016-05-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

linux文件的通用操作方法学习2014-07-29 23:36:10

在linux下用文件描述符来表示设备文件和普通文件。文件描述符是一个整型的数据,所有对文件的操作都通过文件描述符实现。

文件描述符示文件系统中连接用户空间和内核空间的枢纽。当打开一个或者创建一个文件时,内核空间创建相应的结构,并生成一个整型的变量传递给用户空间的对应进程。进程用这个文件描述符来对文件进行操作。

文件描述符的范围示0~OPEN_MAX,因此是一个有限的资源,在使用完毕后要及时释放,通常示调用从close()函数关闭。注意的是文件描述符的值仅在同一个进程中有效,即不同进程文件描述符,同一个值很可能描述的不是同一个设备或普通文件。在里linux系统中有3个已经分配的文件描述符,即标准输入,标准输出和标准错误,他们文件描述符的值分别问0 1 和2。可以查看/dev/下的stdin(标准输入) stout(标准输出)和stderr(标准错误),会发现分别指向/PRoc/self/fd/目录下的0 1 2文件。

1. 打开创建文件open(),creat()函数

查看函数功能可在终端输入 man 2 open,此手册包含了函数所含头文件,函数功能,函数参数取值

函数原型为:int open(const char *pathname,int flags);

int open(const char *pathname,int flags,mode_t mode);

两者差别在于flags取值,当你man 2 open的时候你会看到flags的取值,当flags使用O_CREAT时要指定mode的值,其实就是创建文件比说明权限!

以下是一个简单的打开文件的程序:

1 #include <sys/types.h> 2 #include <sys/stat.h> 3 #include <fcntl.h> 4 #include <stdio.h> 5 6 int main(void) 7 { 8 int fd = -1; //文件描述符声明 9 char filename[] = "text.txt";//打开的文件名10 fd = open(filename,O_RDWR); //打开的方式为可读写方式11 if(fd == -1) //打开失败12 {13 printf("open file s% is failed!,fd:%d\n",filename,fde);14 }15 else //打开成功16 {17 printf("open file s% sucess!,fd:%d\n",filename,fd);18 }20 return 0;21 }

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航