首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux编程cp命令

Linux编程cp命令
EN

Stack Overflow用户
提问于 2015-12-14 19:26:53
回答 2查看 683关注 0票数 1

我正在linux.I上编写一个简单的shell程序,我在shell中实现了用户给出的许多命令。但我不知道如何发出命令来编写这个command.what,我的意思是当用户发出一个简单的命令,即ls or date,我只是在shell systtem("ls")中编写。我将字符串(由用户提供)的值与ls进行了比较,如果为true,则实现它。例如

代码语言:javascript
复制
string s;
cin>>s;
if(s=="ls")
 system("ls");

现在,如果用户说cp file1.cpp file2.cpp,那我该怎么办?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-14 19:43:43

system()只是一个接受const char*参数的函数。您不必将它传递给文字,任何char* (以nul结尾的c-样式字符串)都可以。

如果只想将一行用户输入传递给shell,只需将其读入string,然后使用string::c_str()将其传递给system()

代码语言:javascript
复制
std::string input;
std::getline(std::cin, input);
system(input.c_str());
票数 1
EN

Stack Overflow用户

发布于 2015-12-14 19:39:21

我不确定这是否是你想要的,但你可以使用sprintf

代码语言:javascript
复制
int sprintf ( char * str, const char * format, ... );

所以基本上在你的情况下:

代码语言:javascript
复制
string f1,f2;
cin >> s >> f1 >> f2;
if(s=="cp")
{
    sprintf(ret,"cp %s %s",f1,f2);
    system(ret);
}

当然,在进行sprintf之前,您可以将您想要的验证放入其中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34275038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档