모노 기반 프로젝트에서 vn_getpath 함수 (커널 프레임 워크의 일부로 vnode.h에 정의 됨)를 사용해야하므로 가져 오기에 PInvoke를 사용할 것입니다. 하지만 DllImport 특성에서 참조해야하는 라이브러리를 알아낼 수 없습니다. 나는 'LibC'와 '/System/Library/Frameworks/Kernel.framework/Kernel'을 시도했지만 아직까지는 운이 없다.VNode 용 파일 시스템 경로 찾기
기능이있는 라이브러리를 아는 사람이 있습니까?
나의 궁극적 인 목표 :
나는 시스템에서 실행중인 모든 프로세스에 대한 정보를 수집하고 있습니다. 나는 sysctl을 사용하여 프로세스를 열거한다. sysctl 호출에서 프로세스 ID와 프로세스 실행 파일의 VNode를 얻을 수 있습니다. 이제 파일 시스템 경로를 프로세스의 실행 파일로 가져와야합니다.
vn_getpath 및 fcntl (F_GETPATH 명령 사용)을보고 있습니다.
vn_getpath에서 DllImport 특성을 사용하여 가져올 수있는 라이브러리를 알아낼 수 없습니다.
fcntl에 관해서는 LibC에서 찾았지만 함수에 파일 설명자가 필요합니다 (vnode 대신).
일반적으로 vnode에서 파일 시스템 경로를 얻는 방법에 대한 아이디어가 필요합니다. 중간 단계는 여러 가지가 있습니다.
TIA
이반
솔루션이지만 VNode보다는 PID를 기반으로합니다. 트릭을 수행하는 proc_pidpath 함수 (http://astojanov.wordpress.com/2011/11/16/mac-os-x-resolve-absolute-path-using-process-pid)가 있으며 모든 프로세스에서 작동합니다. 그것이 시스템이든 사용자이든간에. 프로세스 관리자 API (http://cocoadev.com/wiki/ProcessManager)는 사용자 프로세스에만 적용됩니다. – ivan