현재 C로 작성된 터미널 에뮬레이터를 Linux에서 FreeBSD로 이식하려고합니다. 그러나 터미널은 부모 프로세스에서 현재 작업 디렉터리 (CWD)를 가져 오려고합니다.C의 FreeBSD에서 프로세스의 현재 작업 디렉토리를 얻는 방법은 무엇입니까?
이 /proc/$PID/cwd
에 액세스하여이 작업을 수행합니다.
심지어 POSIX 준수 솔루션이 있습니까?
getcwd
으로 프로세스에서 CWD를 얻을 수 있다는 것을 알고 있지만 상위 프로세스의 CWD가 필요합니다. 여기서는 PID 만 알고 있습니다.
당신은 [에 getcwd (http://www.freebsd.org/cgi/man.cgi?query=getcwd&sektion=3) 시스템 호출을 의미? 아니면 쉘 솔루션이 필요합니까? – user3159253
'getcwd'는 실행중인 프로세스의 CWD에만 상위 프로세스와 같은 프로세스를 제공하지 않습니다. –
아마도 FreeBSD에는 작업을 수행 할 즉석 시설이 없습니다. 그러나'fstat -p'또는'lsof -p '을 사용하면 다른 정보 중에서'cwd '를 포함하는 보고서를 얻을 수 있습니다. http://unix.stackexchange.com/questions/94357/find-out-current-working-directory-of-a-running-process를 확인하십시오 –
user3159253