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;
}
相关推荐
sheji34166 小时前
【开题答辩全过程】以 母婴店购物系统为例,包含答辩的问题和答案
java
哪里不会点哪里.6 小时前
Spring 中常用注解详解
java·后端·spring
草莓熊Lotso6 小时前
Qt 控件美化与交互进阶:透明度、光标、字体与 QSS 实战
android·java·开发语言·c++·人工智能·git·qt
UP_Continue6 小时前
Linux--进程优先级和进程切换
linux·运维·服务器
小妖6666 小时前
javascript 舍去小数(截断小数)取整方法
开发语言·前端·javascript
Maggie_ssss_supp7 小时前
Linux-MGR单主集群部署
linux·运维·服务器
zbguolei7 小时前
Springboot上传文件与物理删除
java·spring boot·后端
jay神7 小时前
基于SpringBoot的校园社团活动智能匹配与推荐系统
java·前端·spring boot·后端·毕业设计
可以吧可以吧7 小时前
idea全家桶【常见报错处理】当出现 “We could not validate your license ... “ 提示时
java·ide·intellij-idea
装不满的克莱因瓶7 小时前
IDEA rebuild project 到底有什么作用?
java·ide·intellij-idea