- 博客(9)
- 收藏
- 关注
翻译 第3章 文件I/O
3.14 函数fcntl fcntl函数可以改变已经打开文件的属性。#include <fcntl.h>int fcntl(int fd, int cmd, ... /* int arg */); 返回值:若成功,则依赖于c...
2018-04-22 22:00:17 116
翻译 第3章 文件I/O
3.13 函数sync、fsync和fdatasync 传统的UNIX系统实现在内核中设有缓冲区高速缓存或页高速缓存,大多数磁盘I/O都通过缓冲区进行。当我们向文件写入数据时,内核通常先将数据复制到缓冲区中,然后排入队列,晚些时候再写入磁盘。这种方式被称为延迟写。 通常,当内核需要重用缓冲区来存放其他磁盘快数据时,它会把所有延迟写数据块写入磁盘。为了保证磁盘上实际文件系统与缓冲区中内容的一...
2018-04-22 01:41:41 92
翻译 第3章 文件I/O
3.12 函数dup和dup2下面两个函授都可用来复制一个现有的文件描述符。#include <unistd.h>int dup(int fd);int dup2(int fd, int fd2); 量函数的返回值:若成功,返回新的文件描述符;若出错,返回-...
2018-04-20 23:38:27 135
翻译 第3章 文件I/O
3.11 原子操作1、追加到一个文件 考虑一个进程,它要将数据追加到一个文件尾端。早期的UNIX系统版本并不支持open的O_APPEND选项,所以程序被编写成下列形式:if (lseek(fd, OL, 2) < 0) err_sys("lseek error");if (write(fd, buf, 100) != 100) err_sys("write error"...
2018-04-18 23:40:26 180
翻译 第3章 文件I/O
3.10 文件共享 UNIX系统支持在不同进程间共享打开文件。在介绍dup函数之前,先要说明这种共享。为此先介绍内核用于所有I/O的数据结构。 内核使用3种数据结构表示打开文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。 (1)每个进程在进程表中都有一个记录项,记录项中包含一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项。与每个文件描述符相关...
2018-04-16 23:24:59 113
翻译 第3章 文件I/O
3.9 I/O效率图3-5程序只使用read和write函数复制一个文件。程序略。关于该程序应注意以下几点。它从标准输入读,写至标准输出,这就假定在执行本程序之前,这些标准输入、输出已由shell安排好。确实,所有常用的UNIX系统shell都提供一种方法,它在标准输入上打开一个文件用于读,在标准输出上创建(或重写)一个文件。这使得程序不必打开输入和输出文件,并允许用户利用shell的I/O重定向...
2018-04-12 23:29:46 92
翻译 第3章 文件I/O
3.8 函数read调用read函数向打开文件写数据。#include <unistd.h>ssize_t write(int fd, const void *buf, size_t nbytes); 返回值:若成功,返回已写的...
2018-04-10 22:27:56 110
翻译 第3章 文件I/O
3.7 函数read 调用read函数从打开文件中读数据。#include <unistd.h>ssize_t read(int fd, void *buf, size_t nbytes); 返回值:读到的字节数,若已到文件尾,返回0...
2018-04-10 22:22:29 108
翻译 第3章 文件I/O
3.6 函数lseek 每个打开文件都有一个与其相关联的“当前文件偏移量”(current file offset)。它通常是一个非负整数,用以度量从文件开始处计算的字节数(本节稍后对“非负”这一修饰词的某些例外进行说明)。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数。按系统默认的情况,当打开一个文件时,除非指定O_APPEND选项,否则该偏移量被设置为0. 可以...
2018-04-08 21:52:25 104
空空如也
csdn在chrome浏览器支持快捷键跳转到搜索框吗?
2023-08-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人