fexecve 関数の利用例 ― 2019年02月17日 13時44分58秒
fexecve は 2008 年に POSIX で規定された新しいシステムコール。ファイルを実行する前に、内容を確認することができる様に規定されたようだ。FreeBSD、Linux、Solaris に AIX と確認したが、これらのシステムでは利用可能だった。
この関数の目的は、実行前にプログラムの検査を行うこと。各種アクセス権限や、内容物まで、その気になれば検査してから、実行を開始することができる。
環境変数 TMPDIR を用いる sort に更に -u オプションを渡して例とした。
% cat fexecve.c
#include <unistd.h>
#include <open.h>
int main()
{
char* argv[] = { "sort", "-u", NULL };
char* env[] = { "TMPDIR=/tmp", NULL };
int fd = open( "/usr/bin/sort", O_RDONLY );
fexecve( fd, argv, env );
return -1;
}
% cc execve.c
% ./a.out
a
c
b
^D
a
b
c
%
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2019/02/17/9037170/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。