スペースを含むコマンドライン引数をプログラムに受け入れさせるには何が必要ですか?
さらに別の編集:プログラムの実行環境を設定するシェルスクリプトからプログラムが開始されていることを認識しました。いくつかの外部ライブラリがあるLD_LIBRARY_PATH
ため、現在の作業ディレクトリに設定されます。
#!/bin/sh
ARCH=`uname -m`
export LD_LIBRARY_PATH=".:lib/magic/linux-${ARCH}"
./data_sniffer.bin $*
exit $?
この問題は間違いなく に関連してい$*
ます。コマンドライン パラメータを正しく転送する解決策はありますか?
からのコード スニペットを次に示しますmain()
。
if (stat(argv[1], &lStat) != 0)
{
fprintf(stderr, "Cannot stat(2) given file: %s. \n", argv[1]);
return EXIT_FAILURE;
}
次のパラメーターを使用してプログラムを開始しています。
./data_sniffer /mnt/pod/movies/some\ test\ movie\ file.avi
結果のエラー メッセージは次のようになります: Cannot stat(2) given file: /mnt/pod/movies/some.
ここで何が問題なのか誰にもわかりませんか?この問題を抱えたのは私が初めてではないと思います (ただし、ここで関連する質問が見つかりませんでした)。