gpt4 book ai didi

c++ - C++ 中的 chdir() 获取错误

转载 作者:行者123 更新时间:2023-11-28 03:12:18 24 4
gpt4 key购买 nike

我正在尝试通过 unix 机器上的套接字运行一个最小的终端 shell 程序。当我使用 system("cd directory") 时,它不起作用。所以我做了一些研究,发现了 chdir(),它看起来可以工作。但是,当我尝试它时,它每次都给我错误。这是我的代码:

if (chdir(argument) < 0) {
send(sock, "[*] Directory does not exits!\n", strlen("[*] Directory does not exits!\n"), 0);
}
else {
string argumentString(argument);
string entireMessage = "[*] New working directory: " + argumentString;
char entireMessageChar[64];
int i;
for (i = 0; entireMessage[i] != '\0'; i++) {
entireMessageChar[i] = entireMessage[i];
}
send(sock, &entireMessage, strlen(entireMessageChar), 0);
}

谁能告诉我为什么 chdir() 不改变目录?谢谢。

最佳答案

需要检查 chdir() 退出后 errno 的值,以确定它不工作的原因。

可能的退出状态值包括:

  • EACCESS(目标没有权限)
  • ENOENT(文件不存在)
  • ENOTDIR(目标是文件,而不是目录)。

查看操作系统实现的文档以获取完整列表。

关于c++ - C++ 中的 chdir() 获取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18110788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com