Linux 中 C 语言程序的一些选项
Some options for programs on C in Linux
我想知道我是否可以 运行 一些带有选项的已编译 C 程序,例如 main.exe
,使它在程序运行后休眠?或者我可以 运行 立即执行第二个程序并使用 运行 main.exe
的过程吗?
我需要计算进程的内存,当我在后台执行时 /proc/[pid]/status
和 ps aux
显示不正确的值,因为 main.exe
工作得如此之快。
或者我可以使用一个 fork()
在 C 中执行 2 个程序?或者可以选择 execv
或 execl
?
如果您有权访问应用程序的源代码,只需插入代码以在您要测量的点向自身发送信号 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
在Linux中,time
命令可以用来计算执行时间,内存占用等
参考http://linux.die.net/man/1/time
用法::
$ time main.exe
我想知道我是否可以 运行 一些带有选项的已编译 C 程序,例如 main.exe
,使它在程序运行后休眠?或者我可以 运行 立即执行第二个程序并使用 运行 main.exe
的过程吗?
我需要计算进程的内存,当我在后台执行时 /proc/[pid]/status
和 ps aux
显示不正确的值,因为 main.exe
工作得如此之快。
或者我可以使用一个 fork()
在 C 中执行 2 个程序?或者可以选择 execv
或 execl
?
如果您有权访问应用程序的源代码,只需插入代码以在您要测量的点向自身发送信号 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
在Linux中,time
命令可以用来计算执行时间,内存占用等
参考http://linux.die.net/man/1/time
用法::
$ time main.exe