首页 > 系统相关 >Linux系统编程15-chdir与getcwd

Linux系统编程15-chdir与getcwd

时间:2022-10-14 22:23:12浏览次数:47  
标签:chdir 15 int getcwd char include buf 目录

#include <unistd.h>
int chdir(const char *path);
    作用:修改进程的工作目录
        比如在/home/nowcoder 启动了一个可执行程序a.out,
        进程的工作目录就是 /home/nowcoder
    参数:
        path: 需要修改的工作目录
    返回值: 0 succ -1 failed

#include <unistd.h>
char *getcwd(char *buf, size_t size);
    作用:获取当前工作目录
    参数:
        buf: 存储的路径,指向的是一个数组(传出参数)
        size: 数组的大小
    返回:
        指向的一块内存,这个数据就是第一个参数

实例:在修改后的目录里建立一个文件

chdir.c

#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>

int main(int argc, char const *argv[])
{
    //获取当前的工作目录
    char buf[128];
    getcwd(buf, sizeof(buf));
    printf("当前的工作目录是:%s\n", buf);

    //修改工作目录
    int ret = chdir("/home/username/learn/nowcoder/IO/renamedir");
    if (ret == -1)
    {
        perror("chdir err");
        return -1;
    }

    //创建一个新文件
    int fd = open("chdir.txt", O_CREAT | O_RDWR, 0664);
    if (fd == -1)
    {
        perror("open err");
        return -1;
    }
    close(fd);

    //获取当前工作目录
    char buf1[128];
    getcwd(buf1, sizeof(buf1));
    printf("当前的工作目录是:%s\n", buf1);

    return 0;
}

当前的工作目录是:/home/username/learn/nowcoder/IO
当前的工作目录是:/home/username/learn/nowcoder/IO/renamedir

标签:chdir,15,int,getcwd,char,include,buf,目录
From: https://www.cnblogs.com/anqwjoe/p/16793202.html

相关文章

  • 「ARC150D」Removing Gacha
    题目点这里看题目。给定一棵\(n\)个结点的树。进行如下过程:初始时,所有结点都是白色,且计数器变量\(c=0\)。重复一下两个步骤:如果所有结点都是黑色,停止该过......
  • 进入python的世界_day15_python基础——内置函数、迭代器、异常捕获
    一、一些重要内置函数、常见内置函数1..zip()​ 将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的zip对象,转成list即可查看,如果对应......
  • Python学习路程——Day15
    Python学习路程——Day15重要内置函数zip()'''zip()函数的作用 zip()函数可以将多个序列(列表、元组、字典、集合、字符串以及ranger()区间构成的列表压缩成一个zip对......
  • Day15
    Day15今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环内部原理异常处理今日内容详细重要内置函数1.zip()拉链zip()#接受......
  • 操作系统导论习题解答(15. Address Translation)
    Mechanism:AddressTranslationIndevelopingthevirtualizationoftheCPU,wefocusedonageneralmechanismknownaslimiteddirectexecution(orLDE).1.......
  • 15
    今日内容总结1.内置函数大全#A系列:abs(x)获取绝对值操作aiter()相当于调用x.__aiter__all(x)如果x中的数据值全为真值(或迭代对象为空)则......
  • 概要15
    今日内容回顾目录今日内容回顾重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常捕获处理重要内置函数常见内置函数可迭代对象迭代器对象for循环本质......
  • day15学习分享 内置参数
    目录今日内容概要今日内容详细作业讲解重要内置函数常见内置函数可迭代对象迭代器对象for循环本质异常捕获/处理今日内容概要作业讲解重要内置参数常见内置参数可......
  • Python基础15
    今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常今日内容详细重要内置函数1.zip() zip函数是可以接收多个可迭代对象,然后把每......
  • AtCoder Regular Contest 150 B Make Divisible 贪心 整除分块
    给出一个A和B想要找到一个X和Y使得\(A+X|B+Y\).同时使得X+Y最小求出X+Y的最小值。值域是\([1,10^9]\)直接枚举X不太行会被某种数据卡掉。考虑正解:先固定K另\(\frac{B......