プログラムから別のコマンドを実行する

K&R本 7.8.4

system関数を使えば、別のコマンドを実行できる。

ためしに自分自身を呼び出すプログラムを書いてみる

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

int main (int argc,char *argv[]) {
    int i = 0;
    char command[100];
    
    if ( argc < 2 ) exit(0);
    
    i = atoi(*++argv);
    if ( i <= 0 ) exit(0);
    
    printf("%d ",i);
    
    sprintf_s(command,sizeof(command),"main %d",i-1);
    
    system(command);
    
    return 0;
}
$ main 10
10 9 8 7 6 5 4 3 2 1 

おお、凄い。自分自身のコマンドを再帰的に呼び出してますね。

こんなプログラムも書けるんですね楽しいです。