..just for reference, from konsole/src/ProcessInfo.cpp, includes omitted:
> virtual bool LinuxProcessInfo::readCurrentDir(int pid)
> {
> QFileInfo info( QString("/proc/%1/cwd").arg(pid) );
>
> const bool readable = info.isReadable();
>
> if ( readable && info.isSymLink() )
> {
> setCurrentDir( info.symLinkTarget() );
> return true;
> }
> else
> {
> if ( !readable )
> setError( PermissionsError );
> else
> setError( UnknownError );
>
> return false;
> }
> }
> virtual bool FreeBSDProcessInfo::readCurrentDir(int pid)
> {
> #if defined(__DragonFly__)
> char buf[PATH_MAX];
> int managementInfoBase[4];
> size_t len;
>
> managementInfoBase[0] = CTL_KERN;
> managementInfoBase[1] = KERN_PROC;
> managementInfoBase[2] = KERN_PROC_CWD;
> managementInfoBase[3] = pid;
>
> len = sizeof(buf);
> if (sysctl(managementInfoBase, 4, buf, &len, NULL, 0) == -1)
> return false;
>
> setCurrentDir(buf);
>
> return true;
> #else
> int numrecords;
> struct kinfo_file* info = 0;
>
> info = kinfo_getfile(pid, &numrecords);
>
> if (!info)
> return false;
>
> for (int i = 0; i < numrecords; ++i)
> {
> if (info[i].kf_fd == KF_FD_TYPE_CWD)
> {
> setCurrentDir(info[i].kf_path);
>
> free(info);
> return true;
> }
> }
>
> free(info);
> return false;
> #endif
> }
> virtual bool SolarisProcessInfo::readCurrentDir(int pid)
> {
> QFileInfo info( QString("/proc/%1/path/cwd").arg(pid) );
> const bool readable = info.isReadable();
>
> if ( readable && info.isSymLink() )
> {
> setCurrentDir( info.symLinkTarget() );
> return true;
> }
> else
> {
> if ( !readable )
> setError( PermissionsError );
> else
> setError( UnknownError );
>
> return false;
> }
> }
> virtual bool MacProcessInfo::readCurrentDir(int pid)
> {
> struct proc_vnodepathinfo vpi;
> int nb = proc_pidinfo(pid, PROC_PIDVNODEPATHINFO, 0, &vpi,
> sizeof(vpi));
> if (nb == sizeof(vpi))
> {
> setCurrentDir(QString(vpi.pvi_cdir.vip_path));
> return true;
> }
> return false;
> }
> virtual bool readEnvironment(int pid)
> {
> Q_UNUSED(pid);
> return false;
> }
...cross platform FAiL ^^
#regards|marcel C;
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users