설명

다른 프로그램을 실행하고 종료할 때까지 기다립니다. 예제를 먼저 보시겠습니다.

#include <stdio.h>
#include <stdlib.h>

int main()
{
   system( "ls -al");
   printf( "system() 시행 후에, 이 문자열이 출력됩니다.n");
}

실행하면 아래와 같이 출력됩니다.

]$ ./a.out
합계 72
drwxr-xr-x 2 jwjw jwjw  4096  9월 30 13:41 .
drwxr-xr-x 7 jwjw jwjw  4096  9월 25 06:20 ..
-rwxrwxr-x 1 jwjw jwjw  4815  9월 30 13:41 a.out
-rw-r--r-- 1 jwjw jwjw   146  9월 30 13:41 test.c
-rw-r--r-- 1 jwjw jwjw    18  9월 25 13:00 test.txt
system() 시행 후에, 이 문자열이 출력됩니다.
]$ 

다른 프로그램을 실행할 수 있어 좋지만, 종료될 때까지 대기하는 것이 싫다면 fork()문을 사용하여 자식 프로세스를 생성하고, 자식 프로세스에서 실행하시면 되겠습니다.

#include <stdio.h>   // printf()
#include <stdlib.h>  // system()
#include <unistd.h>  // fork(), sleep()

int main()
{
   int   counter =0;

   switch( fork())
   {
      case -1  :
      {
         printf( "자식 프로세스 생성 실패n");
         return -1;
      }
      case 0   :
      {
         printf( "저는 자식 프로세스로 system()을 호출하겠습니다.n");
         system( "ls -al /");
         break;
      }
      default  :
      {
         printf( "저는 부모 프로세스로 카운트를 하겠습니다.n");
         while( 1 )
         {
            printf( "부모: %dn", counter++);
            sleep( 1);
         }
      }
   }
}
]$ ./a.out
]$ ./a.out   
저는 자식 프로세스로 system()을 호출하겠습니다.
저는 부모 프로세스로 카운트를 하겠습니다.
부모: 0
합계 166
drwxr-xr-x  24 root root  4096  9월 29 21:20 .
drwxr-xr-x  24 root root  4096  9월 29 21:20 ..
-rw-r--r--   1 root root     0  9월 29 21:20 .autofsck
-rw-r--r--   1 root root     0  9월 12 00:00 .autorelabel
drwxr-xr-x   2 root root  4096  9월 12 19:25 bin
drwxr-xr-x   4 root root  1024  9월 11 23:51 boot
drwxr-xr-x   9 root root  3640  9월 29 21:20 dev
drwxr-xr-x  94 root root 12288  9월 29 22:26 etc
drwxr-xr-x   4 root root  4096  9월 11 23:38 home
drwxr-xr-x  14 root root  4096  9월 12 19:19 lib
drwx------   2 root root 16384  9월 11 22:45 lost+found
drwxr-xr-x   2 root root  4096  9월 11 23:38 media
drwxr-xr-x   2 root root     0  9월 29 21:20 misc
drwxr-xr-x   2 root root  4096  3월 30  2007 mnt
drwxr-xr-x   2 root root     0  9월 29 21:20 net
drwxr-xr-x   2 root root  4096  3월 30  2007 opt
dr-xr-xr-x 102 root root     0  9월 29 21:19 proc
drwxr-xr-x   4 root root  4096  9월 14 10:25 qt
drwxr-x---  18 root root  4096  9월 30 13:26 root
drwxr-xr-x   2 root root 12288  9월 12 19:25 sbin
drwxr-xr-x   2 root root  4096  9월 11 22:46 selinux
drwxr-xr-x   2 root root  4096  3월 30  2007 srv
drwxr-xr-x  11 root root     0  9월 29 21:19 sys
drwxrwxrwt   7 root root  4096  9월 30 14:04 tmp
drwxrwxrwx  17 root root  4096  7월  1  2005 usr
drwxr-xr-x  23 root root  4096  9월 11 23:31 var
부모: 1
부모: 2
부모: 3
부모: 4
부모: 5
헤더stdlib.h
형태int system (const char * string);
인수char string 실행할 프로그램 파일 명
반환int

127 : /bin/sh 을 위한 execve() 호출에 실패
-1: 127 이외의 다른 에러 발생
0: 함수 실해에 성공
지정한 프로그램 파일이 없거나 어떤 문제로 shell을 이용할 수 없다면, -1, 0, 127 이외의 값을 반환합니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

예제설명을 참고하여 주십시오.