4
프로세스를 생성하고 ls
를 실행하여 ls
와 같은 명령을 실행한다고 가정 해 보겠습니다.위치를 알 수없는 명령에 대해 execv를 사용하는 방법은 무엇입니까?
char * const parm[] = { "/usr/bin/ls","-l" , NULL };
if ((pid = vfork()) == -1)
perror("fork error");
else if (pid == 0)
{
execv("/usr/bin/ls", parm);
}
이제 문제는 ls
명령이있는 곳에서 하드 코딩 된 것입니다 (/usr/bin/ls
). 이제 특정 명령이있는 곳을 알지 못하고 실행하고 싶다면 어떻게해야합니까? 나는 일반 셸에서 PATH
변수가 동일한 결과를 얻기 위해 검색된다는 것을 알고 있지만 execv
를 사용하는 C 프로그램의 경우 어떻게 구현합니까?
+1 댕, 저를 때려 눕히세요. –