2010-08-09 4 views
-9

"안녕하세요"가 인쇄 될 것인가 아니건간에 아래 코드의 출력을 누구에게 말해 줄 수 있습니까?리눅스 시스템() API

#include <stdio.h> 

int main() 
{ 

system("ls -l"); 
printf("bye"); 

return 0; 
} 
+3

그것은 소리 무례 ... 모두 대문자로 쓰지 마십시오. –

+3

방금 ​​코드를 컴파일하고 실행하면 더 쉬울 수 없습니까? – banx

+1

나는 이것을 고치기 위해 이것을 편집했다 .... 우리는 마음에 독자가 아니며 당신을 위해 더러운 일을하고있다 ... 그것을 시험해보고 스스로를 보아라.이 질문을 쓸모없는 것으로 끝내기로했다. .... – t0mm13b

답변

1

예, 인쇄됩니다.

왜 컴파일하고 직접 테스트하지 않습니까? 작성한 내용을 잘라내어 파일에 붙여 넣습니다 (예 : foo.c를 한 다음 수행에는 개행 문자가 현재 행의 시작에서 끝날 것이다 당신의 printf ("안녕") 후 없기 때문에

gcc -o foo foo.c 
./foo 

을 다음; printf ("bye \ n")를 대신 쓰면 조금 더 명확 해집니다.

8

man system는 말한다 :

int system(const char *command); 

system()/bin/sh -c command를 호출하여 command에 지정된 명령을 실행하고 명령 후 반환이 완료되었습니다.

system()이 반송 된 후 printf이 실행됩니다.

+0

좋아, 나는 대문자로 쓰는 소리하지 않았다. 새로운 스택 오버플로가 발생하여 적절한 줄로 이동해야하므로 대문자로 썼습니다. 또한 Mr.tommieb75, 우리는 서로 모욕하지 않고 답변을주고받습니다. 대답. 당신은 나에게 답변을 제공 할 수 없다면, 얼마나 우스운 말로 썼습니까? 그렇다면 상당히 잘 지키거나 정중하게 제안 해주십시오. 나는이 의미를 가질만큼 성숙했다고 믿습니다. 다른 사람들이 도움을 청하지 않도록 도와주는 포럼입니다. 너의 대답을 위해 – mint9

0

왜 그렇습니까? 조건문이 없으므로 코드의 모든 부분이 실행됩니다.

그것은 시스템에 의해 제공되는 명령의 결과를 출력

0

프로그램은 잘 ls -l 실행하려고 "안녕"인쇄한다.

또한 "bye"가 실제로 인쇄되어야합니다. 그러나 '\ n'문자를 포함하지 않았기 때문에 프롬프트에 추가 된 문자 만 표시됩니다.

또한 표시되지 않으면 프로그램이 종료 될 때 출력이 어떤 이유로 플러시되지 않습니다. '\ n'문자를 추가하면 해당 문자가 표시되는 경우 문제가 해결 될 수 있습니다.

0

모두 사용 가능한 메모리에 따라 다릅니다. 시스템 명령의 반환 값을 확인해야합니다. 성공하면 0을 반환합니다. printf 문이 호출되지만 시스템 명령이 항상 성공할 것인지 확신 할 수 없습니다.

감사합니다, 닐

+0

고마워. – mint9

관련 문제