0

問題が発生しました。シェルコマンド ( ) で C 変数を使用したいdd

abc.cのCプログラムだとします。

int main()
 {
    int block = 1313; /*any integer */
    system("dd if=device of=output-file bs=4096 count=1 skip=$((block))");
    return 0;
 }

blockここで、ddコマンドの代わりに 1313 を使用すると、正常に動作します。しかし、私が書くと、Cプログラム変数のblockように出力ファイルにゼロが書き込まれ、シェルコマンドで使用されます。block

4

1 に答える 1

6

を使用しsnprintf()ます。

char buf[256];
const int block = 1313;
snprintf(buf, sizeof buf,
         "dd if=device of=output-file bs=4096 count=1 skip=%d", block);
system(buf);
于 2013-06-28T10:26:50.027 に答える