文件I/O与目录操作

### 中心主题:文件I/O与目录操作

#### 一、文件I/O的概念


- 定义:文件输入输出,即程序对文件进行读写操作。

#### 二、文件描述符


- 概念:一个整数,用于标识打开的文件,内核通过它来访问文件。
- 作用域:在进程内部有效,进程间不共享。

#### 三、特殊的文件描述符


- STDIN_FILENO(0):标准输入,通常对应键盘输入。
- STDOUT_FILENO(1):标准输出,通常对应屏幕显示。
- STDERR_FILENO(2):标准错误,用于输出错误信息。

#### 四、文件I/O函数


1. `open`


   - 功能:打开文件,返回文件描述符。
   - 示例:
     ```c
     int fd = open("example.txt", O_RDONLY);
     ```
2. `umask`


   - 功能:设置或获取文件模式创建掩码,控制新建文件的权限。
   - 示例:
     ```c
     umask(022);
     ```
3. `close`


   - 功能:关闭文件描述符。
   - 示例:
     ```c
     close(fd);
     ```
4. `write`


   - 功能:向文件写入数据。
   - 示例:
     ```c
     char *message = "Hello, World!";
     write(fd, message, strlen(message));
     ```
5. `read`


   - 功能:从文件读取数据。
   - 示例:
     ```c
     char buffer[100];
     ssize_t bytesRead = read(fd, buffer, sizeof(buffer));
     ```
6. `lseek`


   - 功能:移动文件指针位置。
   - 示例:
     ```c
     lseek(fd, 0, SEEK_SET); // 移动到文件开始位置
     ```

#### 五、获取文件信息


1. `stat`


   - 功能:获取文件状态信息,如大小、权限等。
2. 获取文件所属用户ID
3. 获取文件所属组名
4. 获取文件类型和权限
   - 示例:
     ```c
     struct stat fileStat;
     stat("example.txt", &fileStat);
     ```

#### 六、目录相关函数


1. `opendir`


   - 功能:打开目录流,返回指向目录流的指针。
   - 示例:
     ```c
     DIR *dir = opendir("/path/to/directory");
     ```


2. `closedir`


   - 功能:关闭目录流。
   - 示例:
     ```c
     closedir(dir);
     ```


3. `readdir`


   - 功能:读取目录流中的下一个目录项。
   - 示例:
     ```c
     struct dirent *entry;
     while ((entry = readdir(dir)) != NULL) {
         printf("%s
", entry->d_name);
     }
     ```

1.bmp文件头(bmp file header):提供文件的格式、大小等信息 (14字节)

22.位图信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息(50字节)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值