0708,LINUX目录相关操作

主要是冷气太足感冒了,加上少吃药抗药性差,全天昏迷,学傻了学傻了

cat t_chdir.c

cpp 复制代码
#include <stdio.h>
#include <unistd.h>
#include <error.h>
#include <errno.h>
#include <sys/stat.h>

int main(int argc,char *argv[])
{
    // ./t_chdir dir 
    if(argc!=2){
        error(1,errno,"Usage:%s dir",argv[0]);
    }
    //打印当前工作目录
    char buf[128];
    printf("%s\n",getcwd(buf,128));

    //改变当前工作目录
    if(chdir(argv[1])==-1){
        error(1,errno,"chdir %s ",argv[1]);
    }

    printf("%s\n",getcwd(buf,128));
    return 0;
}

cat t_getcwd.c

cpp 复制代码
#include <stdio.h>
#include <unistd.h>
#include <error.h>
#include <errno.h>

int main(int argc,char *argv[])
{
    // ./t_getcwd
    //char buf[128];
    //char *cwd=getcwd(buf,128);

    char* cwd=getcwd(NULL,0);
    //如果传入的 buf为 NULL,且size为0
    //,则 getcwd 会调用 malloc 申请合适大小的内存空间,
    //填入当前工作目录的绝对路径
    //,然后返回alloc申请的空间的地址。
    if(!cwd){
        error(1,errno,"getcwd");
    }
    printf("%s\n",cwd);
    return 0;
}

cat t_mkdir.c

cpp 复制代码
#include <stdio.h>
#include <unistd.h>
#include <error.h>
#include <errno.h>
#include <sys/stat.h>

int main(int argc,char *argv[])
{
    // ./t_mkfir dir mode
    if(argc!=3){
        error(1,errno,"Usage:%s dir mode",argv[0]);
    }
    mode_t mode;
    sscanf(argv[2],"%o",&mode);
    
    if(mkdir(argv[1],mode)==-1){
        error(1,errno,"mkdir %s ",argv[1]);
    }

    return 0;
}

cat t_readdir.c

cpp 复制代码
#include <func.h>


int main(int argc,char *argv[])
{
    // ./t_readdir dir 
    if(argc!=2){
        error(1,0,"Usage:%s dir mode",argv[0]);
    }
    //打开目录流
    DIR * dirp=opendir(argv[1]);
    if(dirp==NULL){
        error(1,errno,"opendir :%s ",argv[1]);
    }

    //依次读取每一个目录流
    errno=0;
    struct dirent *p;
    while((p=readdir(dirp))!=NULL){
        //打印目录项
        printf("d_ino=%ld   ,d_off=%ld   ,d_reclen=%hu  ,d_type=%u   ,d_name=%s\n",
               p->d_ino,
               p->d_off,
               p->d_reclen,
               p->d_type,
               p->d_name );
    }//p==NULL
    if(errno){
        error(0,errno,"readdir");
    }
    //关闭目录流
    closedir(dirp);
    return 0;
}

cat t_rmdir.c

cpp 复制代码
#include <stdio.h>
#include <unistd.h>
#include <error.h>
#include <errno.h>
#include <sys/stat.h>

int main(int argc,char *argv[])
{
    // ./t_rmfir dir
    if(argc!=2){
        error(1,errno,"Usage:%s dir mode",argv[0]);
    }


    
    if(rmdir(argv[1])==-1){
        error(1,errno,"rmdir %s ",argv[1]);
    }

    return 0;
}
相关推荐
●VON33 分钟前
AtomGit Flutter鸿蒙客户端:文件树与代码浏览
android·服务器·安全·flutter·harmonyos·鸿蒙
KaMeidebaby6 小时前
卡梅德生物技术快报|PD1 单克隆抗体定制配套 N 糖全谱质控开发
前端·人工智能·算法·数据挖掘·数据分析
nuIl7 小时前
实现一个 Coding Agent(3):工具调用
前端·agent·cursor
nuIl7 小时前
实现一个 Coding Agent(4):ReAct 循环
前端·agent·cursor
nuIl7 小时前
实现一个 Coding Agent(1):一次 LLM 调用
前端·agent·cursor
nuIl7 小时前
实现一个 Coding Agent(2):让 LLM 流式响应
前端·agent·cursor
copyer_xyf7 小时前
Python 异常处理
前端·后端·python
sugar__salt7 小时前
从栈队列数据结构到JS原型面向对象全解
前端·javascript·数据结构
倔强的石头1067 小时前
【Linux指南】Linux快捷键与系统实用技巧
linux·运维·服务器
番茄地瓜7 小时前
Linux 配置静态 IP 步骤
linux·运维·服务器