execvp

    0

    1답변

    기본 쉘을 만들고 있는데, 정상적으로 작동하지만 한 가지 문제가 있습니다. 현재와 ​​같은 args를 제공하면 cat testtextfile execvp 명령이 정상적으로 작동합니다. 그러나 내가 비슷한 것을 제공한다면 cat hello\ world 즉. 이름에 공백이있는 파일이 있으면 명령이 작동하지 않습니다. execvp에 이런 종류의 인수를 이

    0

    1답변

    사용자가 명령 (예 : ls -l)을 계속 묻는 프로그램을 만들려고합니다. 입력을 토큰 화하여 명령의 char * . execvp를 호출하여 다음 명령을 실행하십시오. char * paramList [2] = { "/ bin/ls", "-l"}; execvp (paramList [0], paramList); 아무 일도 발생하지 않습니다. 나는 execvp

    0

    1답변

    execvp를 사용하여 ls -l, who, cp -r ./aaa//bbb 등과 같은 명령을 실행하고 있습니다. 동일한 명령을 실행하려고 시도 할 때까지는 아무 문제가 없습니다. 두 번째 명령. 예를 들어 나는 ls -l (모든 것이 좋다), who (모든 것이 좋다), ls -l (잘못된 주소)와 같은 순서를 보여줄 것이다. 이것은 내 코드입니다 : if

    2

    1답변

    저는 C에서 꽤 기본적인 UNIX 쉘에서 작업하고 있습니다.이 프로젝트에서는 실제 쉘 명령어를 실행하기 위해 fork()과 execvp()을 사용하려고 시도하고 있습니다. 하나의 인수 (예를 들어, ls -l 및 echo howareyoutoday 완벽하게 작동)와 같은 명령으로 잘 작동하는 것처럼 보이지만 여러 인수가있는 명령을 실행할 수없는 문제가 발생

    0

    1답변

    execvp 및 fork에 문제가 있습니다. 코드를 실행할 때 파일을 만들 때 exec가 작동하지 않습니다. 단순히 "잘못된 주소"오류를 반환합니다. 또한 printf ("in the child")는 실행할 때 나타나지 않습니다. "내 자식"을 인쇄하지 않고 내 코드를 execvp로 가져올 수 있습니까? pid = fork(); switch(pi

    0

    3답변

    C 코드로 셸을 만드는 작업이 있으며 대부분의 경우 작동하는 솔루션이 있습니다. 내 솔루션은 프로그램이 존재하는 경우 작동하며 Control-D 또는 종료를 입력하여 쉘을 종료 할 수 있습니다. 그러나 내가 알지 못하는 명령을 실행하려고하면 쉘이 명령을 찾을 수 없다는 오류 메시지를 출력하지만 exit 나 press를 입력해야합니다. Control-D 유효

    0

    1답변

    그것은 c의 리눅스 쉘의 구현입니다. 백그라운드 프로세스 지원을 추가했기 때문에 이해가 안되는 출력이 있습니다. 여기에 코드입니다 : 내가 "LS &"같은 BG 명령을 실행하면 #include <stdlib.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h>

    1

    1답변

    터미널에서 사용자가 입력 한 명령을 실행할 수있는 셸을 만들고 있습니다. 또한 역사 기능이 있습니다. 모든 것이 현재 정상적으로 작동합니다. 내가 붙어있는 유일한 부분은 사용자가 "!!" 가장 최근의 명령은 실행되어야하며 사용자가 "! n"을 입력하면 n 번째 명령이 실행되어야합니다. 그러나, 내가 그것을 실행할 때, 아무것도 그 명령을 입력하면 실행되지

    1

    2답변

    주어진 명령의 전체 경로를 알지 못하면 exec 시스템 호출 패밀리 구성원을 사용할 수 있습니다. 예를 들어 때 제대로 execv와를 사용할 수있는 커맨드에서 지정된 "/bin/ls -t" "/bin/cat -n" "/usr/bin/tr /a-z/ /A-Z/" 입력 (ARG [0], 인수)이 (arg[0] -> full path of the comman

    -2

    1답변

    "ls r"을 입력하므로 간단한 코드를 작성하려고합니다. 코드가 올바른지 확인하고 싶습니다. 출력물에 아무것도 표시되지 않습니다. 다음 코드입니다. int main(void){ char *line; char *args[16]; pid_t pid; line = (char*)malloc(1024); printf(