특정 사용자 입력에 대한 경로 이름을 얻으려고합니다. 예를 들어, 사용자가 ls | wc 나는 두 개의 문자열을 첫 번째 문자열 (ls)과 두 번째 문자열 (wc)로 만들고 싶습니다. 그래서 경로 이름을 갖습니다. C 프로그램 내에서이 작업을 수행하고 있으며 코드는 다음과 같습니다.시스템 호출을 사용하여 C에서 "which"명령을 실행하십시오.
/*This is a basic example of what i'm trying to do*/
char* temp;
printf("Enter a command\n");
/* assume user enters ls */
scanf("%s", temp);
char* path = system(which temp);
printf("Testing proper output: %s\n", path);
/*I should be seeing "/bin/ls" but the system call doesn't work properly*/
누구나 올바른 방향으로 나를 가리킬 수 있습니까?
'는 scanf ("% s '에, 온도) :
여기 (안된) 예입니다. –
'popen'은'system'이 아니길 원합니다. 또한 컴파일러에 경고를 설정하고 오류로 처리하려고합니다. gcc를 사용한다면'gcc -Wall -Wextra -Werror'를 시도해보십시오. –
popen은 파이프를 생성하여 프로세스를 엽니 다. 그것은 나에게 경로명을 주거나 뭔가를 놓치고있는 것처럼 보이지 않습니다. 경로를 보려고하는 명령을 실행하려고하지 않습니다. –