我正在运行一个命令,它提供一个字符串作为输出,我使用 popen() 在我的 C 代码中读取该字符串。
我传递给 popen() 的命令是这样的:
mypipe = popen("some_cmd | awk '{print $2}'", "r");
从本质上讲,这使它更简单,并避免在 C 中进一步解析。我担心在这里做这件事是否正确。当然,我可以用 awk 做同样的事情:
mypipe = popen("some_cmd", "r");
然后使用 strtok() 来解析我想要的字符串。
我的问题是,考虑到无论如何我都要运行外部命令(使用 popen()),使用 awk(或类似的)来解析管道输出是否被认为是不安全的,如上面的示例所示。它会引起任何问题吗?