博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux文件的通用操作方法学习
阅读量:4957 次
发布时间:2019-06-12

本文共 1300 字,大约阅读时间需要 4 分钟。

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 
2 #include
3 #include
4 #include
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 }

 

转载于:https://www.cnblogs.com/weilai1/p/3876763.html

你可能感兴趣的文章
CocoaPods 建立私有仓库
查看>>
ubuntu下code::blocks设置运行窗口为gnome命令行
查看>>
Web开发(XAMPP服务器搭建)
查看>>
vue2.0 实现click点击当前li,动态切换class
查看>>
java中equals方法和“==”的区别
查看>>
jQuery easing
查看>>
shell之使用cut切割文本文件
查看>>
基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
查看>>
撤销操作
查看>>
sscanf在字符串中的一些使用
查看>>
[转]new一个Object对象占用多少内存?
查看>>
一步步教你Hadoop多节点集群安装配置
查看>>
JS_轮播案例
查看>>
【转】STM32 - 程序跳转、中断、开关总中断
查看>>
== & ===
查看>>
详解C#中的反射
查看>>
给java初学发者的一些建议,并对自身一年做一个总结。
查看>>
Android开发:Android虚拟机启动错误Can't find 'Linux version ' string in kernel image file
查看>>
2016.03.20
查看>>
href=#与href=javascriptvoid(0)的区别
查看>>