c++如何获取dos命令的返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++如何获取dos命令的返回值相关的知识,希望对你有一定的参考价值。

***************c++内容*****************
char* p;
system("date /t");
***************c++内容*****************
在上面的c++程序里面调用了简单的dos命令显示了日期,比如结果是 "2013/08/11 周日",如何将它给赋值给变量p?

直接获取system的返回值。

1、system函数:
原型:int system(const char * command);
功能:执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名;
说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;
头文件:stdlib.h;
返回值:命令执行成功返回0,执行失败返回-1。
2、例程:

#include<stdio.h>
#include<stdlib.h>
int main()
    system("del C:\\\\123.txt");//在控制台中,执行命令del  C:\\\\123.txt,删除C盘目录下的123.txt文件
    return 0;

参考技术A 先输出到一个文件,然后从文件中读入:
system("date /t >data.txt");

或者使用popen,原理都一样:
char buffer[64] = 0;
FILE *fp = popen(command, "r");
fgets(buffer, sizeof(buffer), fp);
printf("%s", buffer);
pclose(fp);
参考网址:http://www.yc-edu.org/C__peixun/2165.html
参考技术B   示意流程如下:
return_code = system("shell command") ;
if (return_code == 1)
do something ;
else if (return_code == 2)
do something ;
else
do something ;

shell脚本如何获取状态码返回值,如ok或error

使用shell脚本获取"code":"ok","resultXml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<result>\n... 里的ok或error

"code":"ok","resultXml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<result>\n 这个值已被赋值给RESPONSE

现在使用echo "$RESPONSE" | awk 'printf $1'获取的不对,求大神赐教
code的值是个变量,可能的值也许不止ok或error

楼上说的貌似没错,我没去执行看具体报什么错。

用awk是可以的,你需要用-F指定分隔符,然后再输出第几个串,楼上用的双引号作为分隔符,然后输出第四个串,应该是没问题的。
或者你也可以用其他语言,比如php,json_decode函数将这个穿转成数组,然后输入code的值,更加直观。
参考技术A echo "$RESPONSE" | awk -F\" 'print $4'追问

运行了下,没有打印出来

追答

root@localhost:~/xly# cat 1
RESPONSE='"code":"ok","resultXml":"\n\n'
echo $RESPONSE
echo "$RESPONSE" | awk -F\" 'print $4'
root@localhost:~/xly# sh 1
"code":"ok","resultXml":"\n\n
ok

参考技术B #使用awk双引号分割,第4列即可
echo "$RESPONSE" | awk -F '"' 'print $4'

以上是关于c++如何获取dos命令的返回值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Visual Studio 2005 在两个不同的 c++ 程序之间获取返回值

C++如何获取桌面分辨率大小

php通过popen获取的一个命令的返回值如何分析出来

如何在DOS批处理文件中获取mm-dd-yyyy?

如何从 C++ 中的引用中获取值

如何获取程序返回值,退出码,错误码