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;
}
相关推荐
wypywyp9 分钟前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
风流倜傥唐伯虎24 分钟前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Doro再努力25 分钟前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene29 分钟前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
不像程序员的程序媛32 分钟前
Nginx日志切分
服务器·前端·nginx
Yvonne爱编码34 分钟前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚35 分钟前
JAVA进阶之路——无奖问答挑战1
java·开发语言
忧郁的橙子.37 分钟前
02-本地部署Ollama、Python
linux·运维·服务器
北原_春希42 分钟前
如何在Vue3项目中引入并使用Echarts图表
前端·javascript·echarts
你这个代码我看不懂43 分钟前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言