Linux下的一些文件操作

来源:互联网 发布:征管基础数据核实表 编辑:程序博客网 时间:2024/06/06 01:25

1.系统调用、库函数

1.1 系统调用

系统调用实际上就是指最底层的一个调用,在linux程序设计里就是底层调用的意思。面向的是硬件。

系统调用提供的函数如open, close, read, write, ioctl等,需包含头文件

1.2 库函数

库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因。

第一:双缓冲技术的实现。

第二,可移植性。

第三,底层调用本身的一些性能方面的缺陷。

第四:让api也可以有了级别和专门的工作面向。

库函数对文件的操作实际上是通过系统调用来实现的。例如C库函数fwrite()就是通过write()系统调用来实现的。

库函数调用是系统无关的,因此可移植性好。

2.标准IO

2.1 文件指针FILE*

可用于定义文件指针FILE *fp;

2.2 文件打开

打开一个文件,使用fopen()函数

fp = fopen(filename,mod);

第一个参数为文件名或者路径

第二个参数为打开的方式

打开成功返回文件指针,失败返回NULL。

常用的打开方式有:

“r”:只读 “w”:只写 “a“:在行末追加数据  ”rb":以二进制的方式只读“wb”:以二进制的方式只写

3.文件IO

3.1 文件描述符int fd

可用于表示一个文件描述符,int类型

3.2 文件打开

使用open()的系统调用,无缓冲空间,速度慢,但是存储及时

fd = open(filename,mod);
  • 第一个参数为文件名

  • 第二个参数为打开方式

  • 打开失败返回-1

  • 常用的打开方式有:

O_RDONLY:只读O_WRONLY:只写O_RDWR:可读可写O_APPEND:追加O_CREAT:不存在就创建不同的方式之间用|连接特殊的文件描述符:标准输入输出:STDIN_FILENO,STDOUT_FILENO,值分别是01

3.3 文件读写

write(fd,buff,sizeof(buff));

参数分别为,文件描述符,字符串,要写入数据的字节数

read(fd,buff,sizeof(buff));

参数相同,不过将写变为读,返回值为读到的字符个数

4.目录操作

4.1 常用的linux命令用于操作目录

mkdir:创建目录 如:mkdir aaa/pwd:显示当前工作目录ls:显示当前目录下的文件和文件夹 -a显示所有文件 -l显示详细信息 会显示文件属性cd:进入目录tree:显示文件目录树 -L:显示访问级别 如-L1只显示一级目录mv:移动文件,文件夹或者改变名字cp:拷贝文件或者文件夹到某个目录

5.文件属性

5.1 使用ls -l查看会显示每个文件或者文件夹的属性

如某文件显示属性为:

d 文件类型 rwx 拥有者权限 r-x 拥有组权限 r-x 其他人权限 2 pi 拥有者 pi 拥有组

文件类型共有三种:-:普通文件 d:目录文件 p:设备文件

权限分别代表:r:读 w:写 x:操作 实际是用三位二进制来表示,权值分别为421,总大小为7

5.2 chmod这个命令,可以用于改变文件的权限

如:chmod -w x:可以取消对x目录的写的权限(默认对于当前用户来说)

或者:chmod 777 x:赋予所有用户对x文件的所有权限

5.3 掩码umask

可以用于决定在创建文件时的初始权限默认为0022 。

八进制,后三位就是文件的权限了 0022 为0000 0000 0010 0010 1代表没有权限。

所以对于默认创建的文件来说,用户组和其他用户没有写的权限。

可用umask 命令来改变掩码的值。

原创粉丝点击