From 384792f0ea11a3fddc7473d030769ba58c292228 Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Wed, 2 Sep 2009 01:17:44 +0000 Subject: [PATCH] Implement readArguments() for FreeBSDProcessInfo. svn path=/trunk/KDE/kdebase/apps/konsole/; revision=1018643 --- src/ProcessInfo.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/ProcessInfo.cpp b/src/ProcessInfo.cpp index 8a41baaf5..181f5fe2f 100644 --- a/src/ProcessInfo.cpp +++ b/src/ProcessInfo.cpp @@ -625,8 +625,27 @@ private: virtual bool readArguments(int pid) { - // TODO: parse kInfoProc->ki_args? - return false; + char args[ARG_MAX]; + int managementInfoBase[4]; + size_t len; + + managementInfoBase[0] = CTL_KERN; + managementInfoBase[1] = KERN_PROC; + managementInfoBase[2] = KERN_PROC_PID; + managementInfoBase[3] = pid; + + len = sizeof(args); + if (sysctl(managementInfoBase, 4, args, &len, NULL, 0) == -1) + return false; + + const QStringList argumentList = QString(args).split(QChar('\0')); + + for (QStringList::const_iterator it = argumentList.begin(); it != argumentList.end(); ++it) + { + addArgument(*it); + } + + return true; } virtual bool readEnvironment(int pid)