加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

使用C更改Linux中的当前目录

发布时间:2020-12-13 19:09:38 所属栏目:Linux 来源:网络整理
导读:我有以下代码: #include 此代码的目的非常简单:将用户指定的目录设置为当前目录.我的计划是对其中包含的文件进行操作.但是,当我尝试编译此代码时,我收到以下错误 error: cannot convert ‘std::string’ to ‘int’ in initialization 参考读取int chdir(s

我有以下代码:

#include 

此代码的目的非常简单:将用户指定的目录设置为当前目录.我的计划是对其中包含的文件进行操作.但是,当我尝试编译此代码时,我收到以下错误

error: cannot convert ‘std::string’ to ‘int’ in initialization

参考读取int chdir(sDirectory)的行.我刚刚开始编程,现在才开始寻找有关平台特定功能的问题,所以对此问题的任何帮助都会非常感激.

最佳答案
int chdir(sDirectory);调用chdir函数不是正确的语法.它是一个名为chdir的int的声明,它带有一个无效的字符串初始值设定项(`sDirectory).

要调用该函数,您只需执行以下操作:

chdir(sDirectory.c_str());

请注意,chdir采用const char *,而不是std :: string,因此必须使用.c_str().

如果要保留返回值,可以声明一个整数并使用chdir调用来初始化它,但是你必须给int一个名字:

int chdir_return_value = chdir(sDirectory.c_str());

最后,请注意,在大多数操作系统中,只能为进程本身及其创建的任何子进程设置当前或工作目录.它(几乎)永远不会影响生成更改其当前目录的进程的进程.

如果您希望在程序终止后找到要更改的shell的工作目录,则可能会感到失望.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读