Trusted Solaris 開発ガイド

ファイルを開く

Secret プロセスは、読み取りのために somefile を開いて読み取り操作を実行し、このファイルを閉じます。Confidential の /export/home/heartyann シングルレベルディレクトリ内の somefile がアクセスされるように、完全な装飾パス名が使用されます。

完全な装飾パス名は、マルチレベルディレクトリの装飾方法を使用し、どのシングルレベルディレクトリが必要か正確に指定します。代わりに通常のパス名が使用されると、プロセスが Secret で動作しているため Secret のシングルレベルディレクトリがアクセスされます。

完全な装飾パス名の詳細は、「装飾名」を参照してください。マルチレベルとシングルレベルのディレクトリを処理するインタフェースの詳細は、第 8 章「マルチレベルディレクトリ」で説明します。次の例では、わかりやすさのために使われている完全装飾パス名がハードコードされていますが、この方法は第 8 章「マルチレベルディレクトリ」では使いません。

#include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>

 main()
 {
 	int			filedes, retval;
 	ssize_t			size;
 	char			readbuf[1024];
 	char			*buffer = "Write to File.";
 	char			*file = "/export/home/.MLD.heartyann/.SLD.1/filetoexec";
 	char			*argv[10] = {"filetoexec"};

 	filedes = open("/export/home/.MLD.heartyann/.SLD.1/somefile", O_RDONLY);
 	size = read(filedes, readbuf, 29);
 	retval = close(filedes);