当前位置: 技术问答>linux和unix
高分求救~~如何取得linux下进程完整命令行字符串,就是的ps -ef 完整的全路径的CMD那一列,求救!!!!附现在的代码
来源: 互联网 发布时间:2016-03-11
本文导语: 如何取得linux下进程完整命令行字符串,现在可以取出ps -A 的那个CMD,但是需要的ps -ef 完整的全路径的那一列CMD一列,例如:ps -A : PID TTY TIME CMD 3402 ? ...
如何取得linux下进程完整命令行字符串,现在可以取出ps -A 的那个CMD,但是需要的ps -ef 完整的全路径的那一列CMD一列,例如:ps -A :
PID TTY TIME CMD
3402 ? 00:00:00 sshd
UID PID PPID C STIME TTY TIME CMD
ps -ef root 3402 1 0 Mar31 ? 00:00:00 /usr/sbin/sshd
这两个CMD列是不相同的,现在用linux 的glib函数可以取出ps -A的这个CMD: “sshd”,但是没办法渠道完整的CMD:“/usr/sbin/sshd”,代码如下:
#include
#include
using namespace std;
main(int argc, char* argv[])
{
gint n = 0, i, j, k = 0, l;
glibtop_proclist proclist;
glibtop_proc_state procstate;
unsigned *proc_tab;
proc_tab = glibtop_get_proclist (&proclist, 0, 0);
n = proclist.number;
for (i = 0; i ${out}
cat ${out}
}
get_cmdline
exit 0
#./get_cmdline 3004
/bin/bash
PID TTY TIME CMD
3402 ? 00:00:00 sshd
UID PID PPID C STIME TTY TIME CMD
ps -ef root 3402 1 0 Mar31 ? 00:00:00 /usr/sbin/sshd
这两个CMD列是不相同的,现在用linux 的glib函数可以取出ps -A的这个CMD: “sshd”,但是没办法渠道完整的CMD:“/usr/sbin/sshd”,代码如下:
#include
#include
using namespace std;
main(int argc, char* argv[])
{
gint n = 0, i, j, k = 0, l;
glibtop_proclist proclist;
glibtop_proc_state procstate;
unsigned *proc_tab;
proc_tab = glibtop_get_proclist (&proclist, 0, 0);
n = proclist.number;
for (i = 0; i ${out}
cat ${out}
}
get_cmdline
exit 0
#./get_cmdline 3004
/bin/bash
|
用awk比较方便
|
现在没有用LINUX,不可以骓.不过你也可以用下面的试试:
ps -ef | awk '{printf $8}'
ps -ef | awk '{printf $8}'