Linux에서 사용자 홈 디렉터리 가져오기
Linux에서 실행되는 C 프로그램을 개발할 때 사용자의 홈 디렉터리를 검색해야 할 수도 있습니다. HOME 환경 변수에 의존하지 않고 이를 수행하려면 보다 안정적인 접근 방식을 사용할 수 있습니다.
Linux에서 홈 디렉터리를 얻으려면 다음 단계를 수행할 수 있습니다.
1. 사용자 ID 확인:
getuid() 함수를 사용하여 현재 사용자의 사용자 ID를 가져옵니다.
2. 비밀번호 항목 검색:
getpwuid() 함수를 사용하면 획득한 사용자 ID와 관련된 비밀번호 항목을 얻을 수 있습니다. 이 항목은 홈 디렉토리를 캡슐화합니다.
예제 코드:
<code class="c++">#include <unistd.h> #include <sys/types.h> #include <pwd.h> struct passwd *pw = getpwuid(getuid()); const char *homedir = pw->pw_dir;</code>
애플리케이션이 스레딩을 활용하는 경우 대신 getpwuid_r 함수를 사용해야 한다는 점에 유의하는 것이 중요합니다. 스레드 안전.
루트 홈 디렉터리 액세스:
루트 홈 디렉터리는 일반적으로 /root에 있습니다. 프로그램이 루트 사용자로 작동하는 경우 이 디렉터리 내에 파일이나 폴더를 만드는 것이 허용됩니다. 그러나 주의를 기울여 이러한 작업을 필수 작업으로 제한하는 것이 좋습니다.
위 내용은 환경 변수에 의존하지 않고 Linux C 프로그램에서 사용자 홈 디렉터리를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!