文件实用程序
文件实用程序
除非您要将 POSIX 应用程序移植到 Windows,否则不要使用这些 API。提供了一个更高级的文件访问 API 作为 GIO;请参阅 GFile
文档。
POSIX 文件包装器
有一组函数包装了常见的 POSIX 函数,这些函数处理文件名
g_access()
g_chdir()
g_chmod()
g_close()
g_creat()
g_fopen()
,g_freopen()
g_fsync()
g_lstat()
g_mkdir()
g_open()
g_remove()
g_rename()
g_rmdir()
g_stat()
g_unlink()
g_utime()
这些包装器的要点是可以处理 Windows 中具有任何 Unicode 字符的文件名,而无需在应用程序代码中使用 #ifdef
和宽字符 API。
在某些 Unix 系统上,这些 API 可能被定义为与其 POSIX 对应项相同。出于此原因,您必须先检查和包含必要的头文件(例如 fcntl.h
),然后再使用诸如 g_creat()
等函数。您还必须定义相关的特性测试宏。
pathname 参数应采用 GLib 文件名编码。在 POSIX 上,这是实际的磁盘编码,可能对应于进程的区域设置(或 G_FILENAME_ENCODING
环境变量),也可能不对应。
在 Windows 上,GLib 文件名编码是 UTF-8。请注意,Microsoft C 库不使用 UTF-8,而是针对当前系统代码页和宽字符(UTF-16)具有单独的 API。如果存在(在现代 Windows 系统上),GLib 包装器会调用宽字符 API,否则会转换到/从系统代码页。
POSIX 目录包装器
另一组函数允许以 GLib 文件名编码打开和读取目录
错误处理
设置/获取文件内容
文件测试
临时文件处理
构建和操作路径
g_build_path()
g_build_pathv()
g_build_filename()
g_build_filenamev()
g_build_filename_valist()
G_IS_DIR_SEPARATOR()
g_path_is_absolute()
g_path_skip_root()
g_get_current_dir()
g_path_get_basename()
g_path_get_dirname()
g_canonicalize_filename()