티스토리 뷰

Programming/C

C :: system 함수

디빌리 2013. 3. 11. 19:54

0x01 What is the system function?


system 함수란 cstdlib [ C Standard General Utilities Library ] header file에 정의되어 있는 function으로, Program 실행 중 system command를 사용할 수 있게 해준다.


금일 포스팅은 필자가 Windows console application을 개발 중 system("cls"); [화면을 청소해 주는 명령어] 가 필요해서 관련 자료를 찾아본 후 정리한 것이다.



0x02 system function


int system (const char* command);

Execute system command

Invokes the command processor to execute a command.


If command is a null pointer, the function only checks whether a command processor is available through this function, without invoking any command.


The effects of invoking a command depend on the system and library implementation, and may cause a program to behave in a non-standard manner or to terminate.


영어가 나와서 당황했다면 미안하다. 정확한 이해를 돕기 위해서 http://www.cplusplus.com 에서 system function에 관한 글을 그대로 옮겼다.


시스템 함수란, 간단히 말해 명령어 처리기를 호출해서 매개변수로 입력한 명령어를 실행하는 함수이다.


Parameter로 null pointer 값을 전달할 경우 command processor 사용이 가능한지 체크하며 정상일 시 non-zero 즉, 0이 아닌 값을 리턴한다.


Parameter로 System command를 전달할 경우 프로그램 실행 중 시스템 명령어를 실행하며, 성공 시 0을, 실패 시 -1을 리턴한다.


0x03 Example


/* system example : DIR */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* system, NULL, EXIT_FAILURE */

int main ()
{
  int i;
  printf ("Checking if processor is available...");
  if (system(NULL)) puts ("Ok");
    else exit (EXIT_FAILURE);
  printf ("Executing command DIR...\n");
  i=system ("dir");
  printf ("The value returned was: %d.\n",i);
  return 0;
}


line 9; system(NULL)을 통해 시스템 커멘드 프로세서의 상태를 확인

line 12; dir 명령어를 실행시키고 리턴 값을 정수형 변수 i에 저장

line 13; 정수형 변수 i에 return된 값을 확인

댓글