目录操作流程:打开目录,读取目录,关闭目录
1.opendir函数
打开目录,头文件:#include <dirent.h>
DIR * opendir("目录名"),./是当前目录,../是上层目录
2.readdir函数
读取目录,需要循环读取
struct dirent* info = readdir(dir);
printf("%s\n", info->d_name);
3.closedir函数
关闭目录,closedir(dir)
类似ls命令的程序:
4.chdir函数
和命令cd一样,改变路径
5.getpwd获得路径
6.mkdir函数
创建目录
7.rmdir函数
删除目录,命令行中用rm (-rf)
8.ll,stat获得文件的详细信息
时间:
(1)time
time_t time(time_t *t);
time_t tm;
time(&tm)
tm = time(NULL);
功能:
获得1970年到现在的秒数
参数:
t:存放秒数的空间首地址
返回值:
成功返回1970年到现在的秒数
失败返回-1
(2)localtime
struct tm *localtime(const time_t *timep);
功能:
将一个秒数转化成日历时间
参数:
timep:保存秒数空间的地址
返回值:
成功返回保存日历时间结构体的指针
失败返回NULL
(3)ctime
char *ctime(const time_t *timep);//date
功能:
将时间秒数转化成字符串
参数:
timep:保存时间空间的地址
返回值:
成功返回获得时间字符串的首地址
失败返回NULL
struct tm
{
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};
文件部分:
1.getpwuid
struct passwd *getpwuid(uid_t uid);
功能:
根据用户id到/etc/passwd文件下解析获得
结构体信息
参数:
uid:用户id
返回值:
成功返回id对应用户的信息
失败返回NULL
2.getgrgid
struct group *getgrgid(gid_t gid);
功能:
根据gid到/etc/group文件中解析组信息
参数:
gid:组id
返回值:
成功返回组信息
失败返回NULL
3.软链接
file.txt -> hello.c
symlink(被链文件,链接文件)
4.硬链接
link(被链文件,链接文件)
5.remove,rm删除文件
6.rename 改名
7.truncate 清空文件,df -h查看内存使用情况
8.文件报错
(1)perror
void perror(const char *s);-->strerror()
功能:
打印s字符串和errno对应的错误信息
参数:
s:要打印在终端上的出错信息
返回值:
缺省
(2)strerror
char *strerror(int errnum);
功能:
打印errnum出错码对应的出错信息
参数:
errnum:出错errno号
返回值:
成功返回对应的错误信息
ruturn 1;
(3)error ===>>>exit();
void error(int status, int errnum, const char *format, ...);
功能:
程序出错打印对应出错原因和用户输入字符串并退出
参数:
status:程序退出的状态
EXIT_FAILURE 1
EXIT_SUCCESS 0
errnum:错误码
format:
类似printf打印
9.makefile 工程管理工具
一般写为Makefile或makefile
3种写法:
(1)
(2)
(3)