一、文件和目录
文件系统:是目录和文件的一种层次性结构,所有东西的起点是称为根(root)的目录,用字符“/”表示。
文件属性:文件类型、文件大小、文件所有者、文件权限、、文件最后修改时间。stat和fstat返回包含文件所有属性的一个信息结构。
文件名:通常由字母、数字、下划线、句点构成。创建新目录时会自动创建两个文件名:“·”和“··”。点指向当前目录,点点指向父目录。在根目录中,点和点点相同。
文件类型:
- 普通文件(文本或二进制数据)。
- 目录文件 包含其他文件名字以及指向与这些文件有关信息的指针。只有内核可以直接写目录,进程需要使用特定函数才能更改目录。
- 块特殊文件 提供对磁盘设备带缓冲的访问。
- 字符特殊文件 提供对设备不带缓冲的访问。
- FIFO 同于进程间通信,有时称为命名管道(named pipe)。
- 套接字 socket,用于进程间网络通信。
- 符号链接 这种文件指向另一个文件。
路径查看命令:ls(l)。
该命令的简单实现
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc,char *argv[]){
DIR *dp;
struct dirent *dirp;
if(argc!=2){
perror("usage: ./a.out /home/zzt/...\n");
}
if((dp=opendir(argv[1]))==NU