ファイル・パス・データ型
path_t 型の変数を使用すると、__file->path の値 (I/O プローブ・マネージャーに組み込まれている __file を指す) または function fd_path() の値を保持することができます。 path_t 型のローカル変数またはグローバル変数のみがサポートされます。 この型の変数は、連想配列内のキーまたは値にもすることができます。
ファイル・パス変数の宣言
path_t pth; // global variable of type path_t
auto:pth2 = fd_path(fd); // store in a local path_t variable
my_aso[__file->fname] = __file->path; // store in associative array
signed、unsigned、register、static、thread、および kernel の各修飾子は、path_t 型変数ではサポートされていません。
割り当て演算
代入 (=) 演算子では、path_t 変数を別の path_t 変数に割り当てることが許可されます。 この変数の元の値は上書きされます。
次の例では、代入後に p1 および p2 は同じファイル・パスを参照します。
path_t p1, p2;
p1 = fd_path(fd); // fd is a valid file descriptor value
p2 = p1;比較演算
path_t 変数では、等価 (==) 演算子と不等価 (! =) 演算子のみが許可されます。 等価演算子の結果は、両方が同じ絶対ファイル・パスを表している場合は true (1) であり、そうでない場合は false (0) です。
非等価演算子は、この動作を正確に補完します。 その他の比較演算子 (> =、>、<、または = <) は使用できません。 path_t 型変数に使用できます。
ファイル・パス型変数の表示
path_t 型変数は、printf() 関数の「%p」フォーマット指定子を使用して表示できます。
ファイル・パスのこの表示には、対応するファイルシステムで時間のかかるファイル検索操作が含まれます。 そのため、Vue スクリプトで慎重に使用する必要があります。
注: 一時ファイルの場合は、printf () メッセージが出力されるときに存在しなくなる可能性があります。ファイル・パスとしてヌル・ストリングが出力されます。
path_t 型変数をキーまたは値 (もしくはその両方) として持つ連想配列は、print() 関数を使用して表示できます。printf(“file path=[%p]\n”, __file->path);
my_aso[0] = fd_path(fd); // fd is valid file descriptor value
print(my_aso);
ファイル・パス型変数の制限
path_t変数の配列は宣言できません。path_t変数を struct または union のメンバーとして使用できません。path_t変数を指すポインターは使用できません。- 他のいずれかの型への
path_t変数の型キャスト、またはpath_t型への他のいずれかの型の型キャストは許可されません。 - 算術演算子 (+、-、*、/、++、-- など) を
path_t型変数と一緒に使用できません。