10

シェルスクリプトからopen、closeなどのosシステムコールを呼び出すことは可能ですか? グーグルを試してみましたが、「system()」コマンドを使用するという間違った方向に進みます。これについて誰かが助けることができますか?

4

1 に答える 1

9

多くのシステムコールにアクセスできますが、正確なパラメータを直接指定することはできず、ネイティブシェルメカニズムを介してのみアクセスできます。例えば:

exec 4>outfile

呼び出し:

open("outfile", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
dup2(3, 4)

3次に使用可能な記述子に置き換えられます)、および

exec 4<&-

呼び出し:

close(4)

bashなどの一部のシェルでは、ロード可能なモジュールを介して追加のビルトインを追加できます(enableこのようなモジュールのロードに使用されるビルトインを参照してください)。アップストリームで提供されていない機能が本当に必要な場合は、その方法で実装できる可能性があります。

于 2012-04-17T18:01:35.513 に答える