Created 星期四 01 三月 2012
目录
目录操作
#include<"dirent.h">
opendir,readdir,closedir
chdir 更改工作目录
测试目录是否存在
access
文件
文件结束符
标 准输入时,以文件结束符结束(可能是Ctrl+D)
文件类型
(1) 普通文件(regular file)。这是最常见的文件类型,这种文件包含了某种形式的数据。至
于这种数据是文本还是二进制数据对于内核而言并无区别。对普通文件内容的解释由处理该文
件的应用程序进行。
(2) 目录文件(directory file)。这种文件包含了其他文件的名字以及指向与这些文件有关信
息的指针。对一个目录文件具有读许可权的任一进程都可以读该目录的内容,但只有内核可以
写目录文件。
(3) 字符特殊文件(character special file)。这种文件用于系统中某些类型的设备。
(4) 块特殊文件(block special file)。这种文件典型地用于磁盘设备。系统中的所有设备或者
是字符特殊文件,或者是块特殊文件。
( 5 ) F I F O。这种文件用于进程间的通信,有时也将其称为命名管道。1 4 . 5节将对其进行说明。
(6) 套接口( s o c k e t )。这种文件用于进程间的网络通信。套接口也可用于在一台宿主机上的
进程之间的非网络通信。第1 5章将用套接口进行进程间的通信。
(7) 符号连接(symbolic link)。这种文件指向另一个文件
文件权限
测试文件权限用access
umask
在进程创建一个新文件或新目录时,就一定会使用文件方式创建屏蔽字
移动
rename
文件描述符
标准流
STDIN_FILENO 标准输入
STDOUT_FILENO 标准输出
STDERR_FILENO 标准错误
fstream的文件描述符
std::ofstream ofs(filename);
FILE * file=ofs.rdbuf()->fd();
int rf=fileno(file);
select
可用输入,当输入设备有多个时,否则阻塞直到准备好了的设备进行操作或者超时,
open
访问模式标志
O_RDONLY,O_WRONLY,O_RDWR
附加标志
O_APPEND,O_CREAT,O_EXCL,O_NOCTTY,O_NONBLOCK,O_TRUNC
获取当前工作目录
getcwd
pipe和FIFO
int fd[2]
pipe(fd);
fd[0]读,fd[1]写
当文件重定向到管道后,可用fstream对管道操作
用fstream打开FIFO,可进行操作
让ifstream继续读
当ifstream状态不是good时,要继续读,要clear();
管道
F I F O有时被称为命名管道。管道只能由相关进程使用,它们共同的祖先进程创建了管道。
但是,通过F I F O,不相关的进程也能交换数据。