将终端输出的codesign-dvvv读取到cpp程序中
reading codesign -dvvvv output from terminal into a cpp program
我正在通过popen执行"codesign-dvv"命令。它打开了一个通向子进程(代码设计的子进程-dvvv)的双向管道。当我尝试从管道读取命令的输出时,它读取0个字节。以下是代码:
#define MAX_BUF_SIZE 1024
#define MAX_HASH_SIZE 1024
snprintf(command, MAX_BUF_SIZE,"codesign -dvv %s", file);
hash = (char *) malloc(MAX_HASH_SIZE);
if (NULL == hash) {
return NULL;
}
if (!(hfile = popen(command, "r"))){
return NULL;
}
while (fgets(temp, MAX_BUF_SIZE, hfile)!=NULL);
printf("sign %lu %s n",strlen(temp),temp);
strcpy(hash,temp);
pclose(hfile);
在输出中,我可以看到codesign命令的输出,但我的程序无法读取它。
代码符号输出在stderr上,而不是在stdout上。popen只访问stdout。
您应该在命令中将stderr重定向到stdout,例如:
snprintf(command, MAX_BUF_SIZE,"codesign -dvv %s 2>&1", file);
希望这能让你阅读输出。
相关文章:
- 如何通过cpp程序运行shell脚本
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 反向功能超出了我的 cpp 程序的范围
- CPP 程序中未定义的行为
- 如何调试Cpp程序中的析构函数
- Haskell堆栈设置 - 无法识别CPP程序
- 访问类成员的成员变量时 cpp 程序挂起
- 标头包含不是 .c 程序所必需的,而是.cpp程序需要的
- CPP 程序二查找两个给定日期之间的天数,conol CMD
- 如何将Juce图形与不同的cpp程序连接
- 使用System()从CPP程序中调用LN
- 为什么我的 cpp 程序在第一行后挂断
- CPP 程序在服务器上运行缓慢
- 如何将 .so 文件链接到 cpp 程序
- PMPI和OTF2:在CPP程序中链接C代码
- 从Ubuntu中的CPP程序创建新文件
- 我可以通过CPP程序中的数据库调用调用Java程序
- 如何用cpp程序读写EC(嵌入式控制器)寄存器
- CPP 程序不运行
- 在 ubuntu 的 shell 上编译 cpp 程序时出现问题