我想使用几乎自动化的工具检查我的程序内存(我还不擅长 gdb),所以我最终使用了 valgrind。
但是,我想放一个管道作为valgrind的输入;即我想添加以下内容:
>cat file.h | ./prog
我试着做一个
>valgrind `cat file.h | ./prog`
没有成功。
我还尝试制作一个脚本文件,在其中放置整个命令,然后将其传递给 valgrind,但没有成功。
最佳答案
如评论中所述,您应该能够使用以下任一方法:
cat file.h | valgrind ./prog
valgrind ./prog < file.h
第一个使用您特别要求的管道,并且可以很容易地成为任何程序的输出,例如ls -al | valgrind ./prog
ps -axuwww | valgrind ./prog
如果您只是想获取文件的内容,则后者更有效。您尝试的反引号方法不适用于您在这里所做的事情。它适用于您希望一个命令的输出作为另一个命令的参数的情况(例如 ls -al
cat namelist
对在名为 nameless 的文件中命名的所有文件进行详细列表)。
关于linux - 如何将管道作为 valgrind 的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29488940/