首页 > 系统相关 >linux目录操作函数

linux目录操作函数

时间:2024-08-15 10:54:05浏览次数:15  
标签:返回 函数 int tm linux 返回值 NULL 目录

目录基本操作函数

目录操作
1,打开目标目录 
2.读取目录  
3.关闭目录 
目录 当文件看,只不过操作函数和操作文件函数不一样。

opendir

DIR *opendir(const char *name);
  • 功能:

打开一个目录获得一个目录流指针

  • 参数:

name:目录名

  • 返回值:

成功返回目录流指针        失败返回NULL

readdir

struct dirent *readdir(DIR *dirp);
  • 功能:

从目录流中读取文件信息并将保存信息的结构体地址返回

  • 参数:

dirp:目录流指针

  • 返回值:

包含文件信息的结构体        出错或者读到目录流末尾返回NULL

closedir

关闭目录 

 int closedir(DIR *dirp);
  • 功能:

关闭之前已经打开的目录流对象

  • 参数:

opendir的返回结果中目录流对象

  •  返回值:

成功  0        失败   -1

实现ls步骤:

DIR * dir = opendir("./");

Struct dirent*info = readdir(dir);//readdir一次读一个

closedir(dir);

int main(int argc, char *argv[])
{
    DIR * dir = opendir("./");
    if(NULL == dir)
    {
        fprintf(stderr,"opendir errpr\n");
        return 1;
    }
    while(1)
    {
        struct dirent * info = readdir(dir);
        if(NULL == info)
        {
            break;
        }
        printf("%s\n",info->d_name);
    }

    closedir(dir);
    return 0;
}

命令函数

chdir  

//cd

int chdir(const char *path);// /home/linux
  • 功能:

改变当前程序的工作路径

  • 参数:

path:改变到的路径

  • 返回值:

成功返回0        失败返回-1

getcwd 

//pwd 

char *getcwd(char *buf, size_t size);
  • 功能:

获得当前的工作路径

  • 参数:

buf:保存工作路径空间的首地址
size:保存路径空间的长度(max)

  • 返回值:

成功返回包含路径空间的字符串首地址        失败返回NULL

mkdir 

int mkdir(const char *pathname, mode_t mode);//777  666 --x--x--x
  • 功能:

创建一个目录

  • 参数:

pathname:路径
mode:
mode & ~umask  0002

目录权限0777(x代表目录能不能来回切换)

umask新建文件和目录时起作用

  • 返回值:

成功返回0        失败返回-1

rmdir   

rm -fr    rmdir

int rmdir(const char *pathname);
  • 功能:

删除一个空目录文件(必须是空目录)

  • 参数:

pathname:目录文件的名字

  • 返回值:

成功返回0        失败返回-1

stat

int  stat(const  char  *path, struct stat *buf);
  • 功能:

获得文件的属性

  • 参数:

path: 文件的路径
buf:  属性存放空间的首地址

  • 返回值:

成功返回0
失败返回-1

linux中文件名和文件内容分开存储(靠Inode匹配,Inode文件在硬盘上的编号)

时间函数

time

tm = time(NULL);
  • 功能:

获得1970年到现在的秒数

  • 参数:

t:存放秒数的空间首地址

  • 返回值:

成功返回1970年到现在的秒数
失败返回-1

time() 函数用于获取当前时间点自1970年1月1日0时0分0秒(UTC时间)以来的秒数。这通常被称为“时间戳”。

time_t time(time_t *t);

参数理解

  • t:这是一个指向 time_t 类型变量的指针。如果 t 不是 NULLtime() 函数会将获取到的时间戳存储在 t 指向的变量中。
  • 如果 tNULL,则该函数仅返回时间戳,而不存储在任何地方。

localtime

struct tm *localtime(const time_t *timep);
  • 功能:

将一个秒数转化成日历时间

  • 参数:

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 */
};

ctime

char *ctime(const time_t *timep);//date
  • 功能:

将时间秒数转化成字符串

  • 参数:

timep:保存时间空间的地址

  • 返回值:

成功返回获得时间字符串的首地址
失败返回NULL

根据id获得信息

getpwuid

struct passwd *getpwuid(uid_t uid);
  • 功能:

根据用户id到/etc/passwd文件下解析获得结构体信息

  • 参数:

uid:用户id

  • 返回值:

成功返回id对应用户的信息
失败返回NULL

getgrgid

struct group *getgrgid(gid_t gid);
  • 功能:

根据gid到/etc/group文件中解析组信息

  • 参数:

gid:组id

  • 返回值:

成功返回组信息
失败返回NULL

标签:返回,函数,int,tm,linux,返回值,NULL,目录
From: https://blog.csdn.net/weixin_62409078/article/details/141184296

相关文章

  • 对C工程使用GTest与Gmock函数未定义(undefined reference)排错记录
    在使用Gtest过程中出现了一些被测参数和函数未定义的问题调了三天很是头疼1、对象只申明未定义在配置文件中该结构体数组已经被定义完成,错误排除2、使用对象的错误定义(签名不匹配)  C++提供了函数重载,当函数的声明与调用时,输入参数与声明是不同时会报undefinedrefer......
  • java使用动态链接库读取Fanuc设备,在linux环境部署时报错:FOCAS2 log file is not found
    在linux环境中,使用java调用动态链接库的方式读取Fanuc,报错“FOCAS2logfileisnotfound”解决办法linux环境使用cnc_allclibhndl3之前,需要先使用cnc_startupprocess启用并指定日志文件,否则会报错:"FOCAS2logfileisnotfound"。会包含cnc_startupprocess,windows的dll库......
  • Qt/C++地图坐标纠偏/地球坐标系/火星坐标系/百度坐标系/互相转换/离线函数
    一、前言说明为什么需要地球坐标纠偏这个功能,因为国家安全需要,不允许使用国际标准的地球坐标系,也并不是咱们这边这样,很多国家都是这样处理的,就是本国的地图经纬度坐标都是按照国家标准来的,所以就需要一个转换。国内主要有三种坐标系,国际标准用的地球坐标系WGS-84,国家标准用的火星......
  • Linux网络设置
    目录一、查看网络接口信息、1.ifconfig命令2.hostname查看主机名称  3.route查看路由表条码 4.netstat查看网路连接情况5.ss命令6.lsof命令 二、测试网络1.ping命令,测试网络连通性 2.跟踪数据包3.域名解析 三、设置网络地址参数1.设置网络接口参数......
  • MySQL6 嵌套查询、子查询、自关联查询、SQL函数
    嵌套查询(子查询)基本概念:一个查询语句(外部查询)中包含了另一个查询语句(子查询)select列名1,列名2....from表1,表2where条件条件表达式(子查询语句)子查询被当作一个单元来执行,它先于外部查询执行,其结果可以被外部查询使用。子查询的结果通常被看作是一个临时表,外......
  • 深度学习理解非线性因素,知道常见激活函数
    网络非线性因素的理解激活函数用于对每层的输出数据进行变换,进而为整个网络结构结构注入了非线性因素。此时,神经网络就可以拟合各种曲线。如果不使用激活函数,整个网络虽然看起来复杂,其本质还相当于一种线性模型,如下公式所示:另外通过图像可视化的形式理解:我们发现增......
  • C语言函数(上)
    前言与概述笔者打算通过两篇文章详细介绍C语言函数的相关知识,本文章将会介绍C语言函数定义、C语言函数分类、函数参数、函数调用。下一篇文章将会介绍函数声明、链式访问,并详细介绍函数递归。笔者不才,如有错误,欢迎各位编程大佬在评论区批评指正。C语言函数定义维基百科中将C......
  • day02(Linux)Shell脚本
    Shell脚本一.shell脚本基础概念1.1概念shell使用方式:手动在命令行下命令和用shell脚本shell脚本本质:shell命令的有序集合,扩展名可以为sh见名知意,也可以没有。shell既是应用程序,又是一种脚本语言(应用程序解析脚本语言)。解释型语句:不需要编译,解释一条执行一条,pytho......
  • Linux 中断机制(二)之中断子系统框架
    目录一、概述二、中断控制器GIC1、Distributor接口2、Redistributor接口3、CPU接口三、中断类型四、中断号五、中断申请函数1、request_irq函数2、request_threaded_irq()函数3、gpio_to_irq函数4、free_irq函数六、中断服务函数一、概述一个完整的中断子......
  • 【树莓派学习笔记2】opencv常用的视觉方案,特征颜色提取,模式匹配,图形映射函数
    本文主要介绍opencv里面一些常用的视觉方案,所需的全部代码均在如下1.给视觉单独开一个进程持续运行并更新全局变量#获取并处理图像defget_image():whileTrue:#开全局变量处理,分理处红绿蓝globalimage,image_red,image_green,image_blue......