我想知道我可以运行一些已编译的C程序,例如main.exe
带有选项,可以在程序工作后让它睡眠吗?或者我可以立即运行第二个程序并使用与main.exe
一起运行的进程吗?
我需要计算进程的内存,当我在后台/proc/[pid]/status
和ps aux
显示不正确的值时,因为main.exe
的工作速度非常快。
或者我可以使用一个fork()
在C中执行2个程序?或者可以选择execv
或execl
?
答案 0 :(得分:1)
答案 1 :(得分:0)
如果您可以访问应用程序的源代码,只需插入代码以在您要测量的点发送信号SIGSTOP:
raise( SIGSTOP );
然后你可以测量你想要的任何东西,让程序从外面发送SIGCONT。如果您没有这样的访问权限,您可以尝试运行此过程并在外部发送信号,例如通过shell脚本,但您需要延迟播放:
#!/bin/bash
./main.exe &
sleep 0.1 # this may not work on your distro, you will need to find how to sleep subsecond
kill -SIGSTOP %1