"안녕하세요"가 인쇄 될 것인가 아니건간에 아래 코드의 출력을 누구에게 말해 줄 수 있습니까?리눅스 시스템() API
#include <stdio.h>
int main()
{
system("ls -l");
printf("bye");
return 0;
}
"안녕하세요"가 인쇄 될 것인가 아니건간에 아래 코드의 출력을 누구에게 말해 줄 수 있습니까?리눅스 시스템() API
#include <stdio.h>
int main()
{
system("ls -l");
printf("bye");
return 0;
}
예, 인쇄됩니다.
왜 컴파일하고 직접 테스트하지 않습니까? 작성한 내용을 잘라내어 파일에 붙여 넣습니다 (예 : foo.c를 한 다음 수행에는 개행 문자가 현재 행의 시작에서 끝날 것이다 당신의 printf ("안녕") 후 없기 때문에
gcc -o foo foo.c
./foo
을 다음; printf ("bye \ n")를 대신 쓰면 조금 더 명확 해집니다.
man system
는 말한다 :
int system(const char *command);
system()
이/bin/sh -c command
를 호출하여command
에 지정된 명령을 실행하고 명령 후 반환이 완료되었습니다.
system()
이 반송 된 후 printf
이 실행됩니다.
좋아, 나는 대문자로 쓰는 소리하지 않았다. 새로운 스택 오버플로가 발생하여 적절한 줄로 이동해야하므로 대문자로 썼습니다. 또한 Mr.tommieb75, 우리는 서로 모욕하지 않고 답변을주고받습니다. 대답. 당신은 나에게 답변을 제공 할 수 없다면, 얼마나 우스운 말로 썼습니까? 그렇다면 상당히 잘 지키거나 정중하게 제안 해주십시오. 나는이 의미를 가질만큼 성숙했다고 믿습니다. 다른 사람들이 도움을 청하지 않도록 도와주는 포럼입니다. 너의 대답을 위해 – mint9
왜 그렇습니까? 조건문이 없으므로 코드의 모든 부분이 실행됩니다.
그것은 시스템에 의해 제공되는 명령의 결과를 출력
프로그램은 잘 ls -l
실행하려고 "안녕"인쇄한다.
또한 "bye"가 실제로 인쇄되어야합니다. 그러나 '\ n'문자를 포함하지 않았기 때문에 프롬프트에 추가 된 문자 만 표시됩니다.
또한 표시되지 않으면 프로그램이 종료 될 때 출력이 어떤 이유로 플러시되지 않습니다. '\ n'문자를 추가하면 해당 문자가 표시되는 경우 문제가 해결 될 수 있습니다.
모두 사용 가능한 메모리에 따라 다릅니다. 시스템 명령의 반환 값을 확인해야합니다. 성공하면 0을 반환합니다. printf 문이 호출되지만 시스템 명령이 항상 성공할 것인지 확신 할 수 없습니다.
감사합니다, 닐
고마워. – mint9
그것은 소리 무례 ... 모두 대문자로 쓰지 마십시오. –
방금 코드를 컴파일하고 실행하면 더 쉬울 수 없습니까? – banx
나는 이것을 고치기 위해 이것을 편집했다 .... 우리는 마음에 독자가 아니며 당신을 위해 더러운 일을하고있다 ... 그것을 시험해보고 스스로를 보아라.이 질문을 쓸모없는 것으로 끝내기로했다. .... – t0mm13b