文件路径数据类型

类型为 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

path_t 类型的变量不支持 signed、unsigned、register、static、thread 和 kernel 限定符。

分配操作

赋值 (=) 运算符允许将一个 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 类型变量不允许使用其他比较运算符(>=、>、< 或 =<)。

显示文件路径类型变量

可在 printf() 函数中使用“%p”格式说明符显示 path_t 类型变量。

显示文件路径时涉及在对应文件系统中搜索文件的操作,此操作非常耗时。 因此,在 Vue 脚本中使用时必须谨慎。

注: 对于可以打印 printf () 消息时可能不再存在的瞬态文件; 将空字符串打印为文件路径。
可使用 print() 函数显示将 path_t 类型变量用作键和/或值的关联数组。
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 类型变量配合使用。