[英]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.