一、目录与文件操作
opendir
函数- 功能:打开一个目录获得一个目录流指针。
- 函数原型:
DIR *opendir(const char *name);
- 成功返回目录流指针,失败返回
NULL
。
readdir
函数- 功能:从目录流中读取文件信息并返回保存信息的结构体地址。
- 函数原型:
struct dirent *readdir(DIR *dirp);
- 出错或者读到目录流末尾返回
NULL
。
closedir
函数- 功能:关闭之前已经打开的目录流对象。
- 函数原型:
int closedir(DIR *dirp);
- 成功返回
0
,失败返回-1
。
chdir
函数(类似cd
命令)- 功能:改变当前程序的工作路径。
- 函数原型:
int chdir(const char *path);
- 成功返回
0
,失败返回-1
。
getcwd
函数(类似pwd
命令)- 功能:获得当前的工作路径。
- 函数原型:
char *getcwd(char *buf, size_t size);
- 成功返回包含路径空间的字符串首地址,失败返回
NULL
。
mkdir
函数- 功能:创建一个目录。
- 函数原型:
int mkdir(const char *pathname, mode_t mode);
- 成功返回
0
,失败返回-1
。
rmdir
函数- 功能:删除一个空目录文件。
- 函数原型:
int rmdir(const char *pathname);
- 成功返回
0
,失败返回-1
。
二、文件属性获取
stat
函数- 功能:获得文件的属性。
- 函数原型:
int stat(const char *path, struct stat *buf);
- 成功返回
0
,失败返回-1
。
三、用户和组信息获取
getpwuid
函数- 功能:根据用户
id
到/etc/passwd
文件下解析获得结构体信息。 - 函数原型:
struct passwd *getpwuid(uid_t uid);
- 成功返回
id
对应用户的信息,失败返回NULL
。
- 功能:根据用户
getpwnam
函数- 功能:根据用户名到
/etc/passwd
文件下解析获得结构体信息。 - 函数原型:
struct passwd *getpwnam(const char *name);
- 功能:根据用户名到
getgrgid
函数- 功能:根据
gid
到/etc/group
文件中解析组信息。 - 函数原型:
struct group *getgrgid(gid_t gid);
- 成功返回组信息,失败返回
NULL
。
- 功能:根据
getgrnam
函数- 功能:根据组名到
/etc/group
文件中解析组信息。 - 函数原型:
struct group *getgrnam(const char *name);
- 功能:根据组名到
四、链接文件操作
symlink
函数- 功能:创建一个链接向
oldpath
文件的新符号链接文件。 - 函数原型:
int symlink(const char *oldpath, const char *newpath);
- 成功返回
0
,失败返回-1
。
- 功能:创建一个链接向
remove
函数- 功能:删除一个文件。
- 函数原型:
int remove(const char *pathname);
- 成功返回
0
,失败返回-1
。
rename
函数(类似mv
命令)- 功能:将一个老的路径名改为新的路径。
- 函数原型:
int rename(const char *oldpath, const char *newpath);
- 成功返回
0
,失败返回-1
。
link
函数- 功能:创建一个硬链接文件。
- 函数原型:
int link(const char *oldpath, const char *newpath);
- 成功返回
0
,失败返回-1
。
五、出错处理
perror
函数- 功能:打印指定字符串和
errno
对应的错误信息。 - 函数原型:
void perror(const char *s);
- 功能:打印指定字符串和
strerror
函数- 功能:打印
errnum
出错码对应的出错信息。 - 函数原型:
char *strerror(int errnum);
- 功能:打印
error
函数- 功能:程序出错打印对应出错原因和用户输入字符串并退出。
六、Makefile 编写
Makefile
是工程管理的重要工具,用于自动化编译和构建项目。