繁体   English   中英

带有C ++的Unix命令

[英]Unix commands with c++

我需要从C ++程序运行Unix命令。

    string command;
    do{
        cout<<"~ "<<get_current_dir_name ()<<">";
        cin>>command;
        if(command=="exit"||cin.eof()){
            cout<<"exit!"<<endl;
            system("exit");
            break;
        }
        system(command.c_str());
    }while (true);

但是,当我使用调用cd命令(更改当前目录)时,出现“权限被拒绝”错误。

我可以在代码中使用chmod吗? 如果是,我该如何使用它。

编译后我无法使用chmod

这是我编译代码的方式:

g++ -o shell *.cpp -std=c++11 -Wall -Wno-vla -pedantic -march=core2 -Os -pipe -fstack-protector-all -g3 -Wl,-O,1,-z,combreloc

system()函数启动一个新的外壳程序。 如果在该外壳中执行cd ,则只会影响该外壳,一旦对system()的调用返回,该外壳便会消失,因此基本上无效。 您可能永远不应该在C ++程序中使用system() -如果要更改执行代码的工作目录,则应使用chdir()函数,该函数是POSIX,但我相信Windows上也可以使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM