Linux系统编程:目录和文件

目录操作流程:打开目录,读取目录,关闭目录

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)

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值