Re: /proc/${PID}/cmdline parsing
Cyril <[email protected]>
| Newsgroups | gmane.linux.newbie |
|---|---|
| Message-ID | <[email protected]> |
Kristof Provost a écrit : > On 2010-06-03 12:29:29 (+0300), Mihamina Rakotomandimby <[email protected]> wrote: > >>> Joel Fernandes <[email protected]> : >>> >>>> If I launch a >>>> $ watch find / -type f -name 'toto' >>>> (it's a useless command just for the example) >>>> and then I get the PID of this. >>>> >>> PID of what? watch or find? >>> >> PID of "watch" >> >> >>>> When I >>>> $ cat /proc/${PID}/cmdline >>>> watchfind/-typef-nametoto >>>> Yes, it's the command line, but I would like to parse it, in order to >>>> display the launched executable + its arguments. >>>> How to parse it? >>>> >>> Could you be a bit more clear with your question? >>> >> I want to split "watchfind/-typef-nametoto" (the content >> of /proc/${PID}/cmdline) to get "watch find / -type f -name toto" (the >> command I issued above) >> >> But I cannot figure out how to split it. >> Would you know another place in the system I should look at? >> >> > > Running 'hexdump -C /proc/2202/cmdline' produces this: > > 00000000 2f 73 62 69 6e 2f 67 65 74 74 79 00 33 38 34 30 |/sbin/getty.3840| > 00000010 30 00 74 74 79 31 00 |0.tty1.| > 00000017 > > It looks like the fields are separated by 0 bytes. > You'll simply need to read the file and split on every zero byte. > > Kristof > > -- > To unsubscribe from this list: send the line "unsubscribe linux-newbie" in > the body of a message to [email protected] > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.linux-learn.org/faqs > You're right. I'm no awk expert, so the following command might not be as beautiful as can be, but it does exactly what Mihamina wants : $ cat /proc/PID/cmdline | awk '{BEGIN {FS = "\0"} ; {ORS = " "}; {for (i = 1 i < NF; i++) print $i}' Cyril. -- To unsubscribe from this list: send the line "unsubscribe linux-newbie" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs