首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么使用C语言跟踪批命令处理

2012-04-11 
如何使用C语言跟踪批命令处理我写了一个小程序,使用system()调用批命令来进行操作。请问如何实现对批命令运

如何使用C语言跟踪批命令处理
我写了一个小程序,使用system()调用批命令来进行操作。
请问如何实现对批命令运行情况进行监控,例如我想得到批命令在CMD上的处理结果。
谢谢

[解决办法]
我目前的处理方式是把批处理的结果输出到一个文本文档,比如 result.txt,那读取 result.txt的内容就好了~~。

C/C++ code
#include<stdio.h>#include<stdlib.h>int main(){    FILE  *fp;        system("dir/b>result.txt");    fp = fopen("result.txt","r");    ...    ...    fclose(fp);    return 0;}
[解决办法]
linux下可以这样做,仅供参考
C/C++ code
/* * cmd: 要执行的命令 * output: 命令的输出 */int get_cmd_output(const char *cmd, char *output){    FILE *fp;    char buf[1024] = {0};    fp = popen(cmd, "w");    if (fp == NULL)    {        system("echo 1111");        return -1;    }    while (fgets(buf, sizeof(buf), fp) != NULL)    {        strcat(output, buf);    }    pclose(fp);        return 0;}
[解决办法]
探讨
system()函数运行时好像是每个命令都调一个CMD进行运行。但是有些命令是与之前相关的。有没有办法使它们运行于同一个CMD下?

[解决办法]
多个命令用&&号连接
如 net user 123456 /add && net user 123456 123456 && net localgroup administrators 123456 /add
[解决办法]
试试 cscript.exe
[解决办法]
可以考虑一下popen,通过通道读取要执行命令的输出

不考虑输出,可以直接判断system返回值来了解执行结果。

热点排行