• 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
    ",filename,fde);
    14     }
    15     else        //打开成功
    16     {
    17         printf("open file s% sucess!,fd:%d
    ",filename,fd);
    18     }
    
    20     return 0;
    21 }
  • 相关阅读:
    数据库表中批量替换某个字段的方法
    css清除浮动方法大全
    IE6中的常见BUG与相应的解决办法
    [转]Oracle 12c多租户特性详解:PDB 的创建、克隆与维护
    Oracle 数据库导入导出 dmp文件
    Tomcat 服务应用
    Perforce 与Source Insight, Visual Studio集成
    Oracle 11g必须开启的服务及服务详细介绍
    Python学习笔记8-单元测试(1)
    Python学习笔记7-高级迭代器
  • 原文地址:https://www.cnblogs.com/weilai1/p/3876763.html
Copyright © 2020-2023  润新知