函数

func open(String, Int32)

public func `open`(path: String, oflag: Int32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func open(String, Int32, UInt32)

public func `open`(path: String, oflag: Int32, flag: UInt32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1。path 代表文件路径,oflag 代表文件打开的方式,其中 O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND 操作。

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。
  • flag: UInt32 - 如果 oflag 设置了 O_CREAT 并且需要创建新文件,则 flag 参数标识对新文件的权限,否则 flag 不改变文件权限。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func access(String, Int32)

public func access(path: String, mode: Int32): Int32

功能:判断某个文件是否具有某种权限,具有返回 0,否则返回 -1

说明:

  • mode 为指定权限,传入类型 R_OKW_OKX_OKF_OK

参数:

  • path: String - 文件路径。
  • mode: Int32 - 待检查的权限。

返回值:

  • Int32 - 文件具有待检查的权限返回 0,否则返回 -1

异常:

func chdir(String)

public func chdir(path: String): Int32

功能:通过指定路径的方式,更改调用进程的当前工作目录。

参数:

  • path: String - 改变后的路径。

返回值:

  • Int32 - 设置成功,返回 0,设置失败, 返回 -1

func chmod(String, UInt32)

public func chmod(path: String, mode: UInt32): Int32

功能:修改文件访问权限。

说明:

  • Windows 环境下,所有文件和目录都是可读的,chmod() 不能更改文件的可读权限;
  • Windows 环境下,文件的可执行权限通过文件扩展名设置,所有目录都是可执行的,chmod() 不能更改文件和目录的可执行权限。

参数:

  • path: String - 文件路径。
  • mode: UInt32 - 要修改的权限。

返回值:

  • Int32 - 操作成功时返回 0,失败时返回 -1。当 mode 为非法参数时,chmod 会忽略该参数,返回 0

异常:

func chown(String, UInt32, UInt32)

public func chown(path: String, owner: UInt32, group: UInt32): Int32

功能:修改文件所有者和文件所有者所属组。

参数:

  • path: String - 文件路径。
  • owner: UInt32 - 所有者 uid
  • group: UInt32 - 指定 gid 参数。

返回值:

  • Int32 - 操作成功时返回 0,失败时返回 -1

异常:

func close(Int32)

public func close(fd: Int32): Int32

功能:关闭文件,close 将会触发数据写回磁盘,并释放文件占用的资源。

参数:

  • fd: Int32 - 文件描述符。

返回值:

  • Int32 - 成功时返回 0,失败时返回 -1

func creat(String, UInt32)

public func creat(path: String, flag: UInt32): Int32

功能:创建文件并为其返回文件描述符,或在失败时返回 -1

参数:

  • path: String - 文件路径。
  • flag: UInt32 - 创建文件的权限。

返回值:

  • Int32 - 返回文件描述符,执行失败时返回 -1

异常:

func dup(Int32)

public func dup(fd: Int32): Int32

功能:用于复制旧 fd 参数指定的文件描述符并返回。此新文件描述符和旧的参数 fd 引用同一文件,共享文件各种状态。共享所有的锁定、读写位置和各项权限或标志等。

参数:

  • fd: Int32 - 文件描述符。

返回值:

  • Int32 - 返回最小且未使用的文件描述符,执行失败时返回 -1

func dup2(Int32, Int32)

public func dup2(fd: Int32, fd2: Int32): Int32

功能:用于复制 oldfd 参数指定的文件描述符,并将其返回到 newfd 参数。如果参数 newfd 是打开的文件描述符,则 newfd 指定的文件将首先关闭。

参数:

  • fd: Int32 - oldfd 参数指定的文件描述符。
  • fd2: Int32 - newfd 参数指定的文件描述符。

返回值:

  • Int32 - fd2 文件描述符。

func faccessat(Int32, String, Int32, Int32)

public func faccessat(fd: Int32, path: String, mode: Int32, flag: Int32): Int32

功能:判断 fd 对应的文件是否具有某种权限,具有返回 0,否则返回 -1

说明:

  • mode 为指定权限,传入类型 R_OKW_OKX_OKF_OK

参数:

  • fd: Int32 - 文件描述符。
  • path: String - 文件路径。
  • mode: Int32 - 待检查的权限。
  • flag: Int32 - 将以下一个或多个值按位或运算获取。(512)使用有效的用户和组 ID 执行访问检查,默认情况下使用有效 ID(256) 如果路径名是符号链接,不会取消引用而是返回有关链接本身信息。

返回值:

  • Int32 - 文件具有待检查的权限返回 0,否则返回 -1

异常:

func fchdir(Int32)

public func fchdir(fd: Int32): Int32

功能:通过指定文件路径的描述符,更改调用进程的当前工作目录。

参数:

  • fd: Int32 - 改变后的文件路径的描述符

返回值:

  • Int32 - 设置成功,返回 0,设置失败, 返回 -1

func fchmod(Int32, UInt32)

public func fchmod(fd: Int32, mode: UInt32): Int32

功能:修改文件描述符对应的文件访问权限。

参数:

  • fd: Int32 - 文件描述符。
  • mode: UInt32 - 要修改的权限。

返回值:

  • Int32 - 操作成功时返回 0,失败时返回 -1

异常:

func fchmodat(Int32, String, UInt32, Int32)

public func fchmodat(fd: Int32, path: String, mode: UInt32, flag: Int32): Int32

功能:修改文件描述符对应的文件访问权限。

说明:

  • path 为相对路径且 fd 为特殊值 AT_FDCWD 时,则路径将相对于调用进程的当前工作目录。
  • path 为相对路径且 fdAT_FDCWD 时,则路径将相对于 fd 引用的文件所属目录。
  • path 为绝对路径时 fd 参数将被忽略。

参数:

  • fd: Int32 - 文件描述符。
  • path: String - 文件路径。
  • mode: UInt32 - 要修改的权限。
  • flag: Int32 - 取值可为 0,或 (256) 如果路径名是符号链接,不会取消引用它,而是返回有关链接本身的信息。

返回值:

  • Int32 - 操作成功时返回 0,失败时返回 -1

异常:

func fchown(Int32, UInt32, UInt32)

public func fchown(fd: Int32, owner: UInt32, group: UInt32): Int32

功能:修改 fd 对应的文件所有者和文件所有者所属组。

参数:

  • fd: Int32 - 文件描述符。
  • owner: UInt32 - 所有者 uid
  • group: UInt32 - 指定 gid 参数。

返回值:

  • Int32 - 操作成功时返回 0,失败时返回 -1

func fchownat(Int32, String, UInt32, UInt32, Int32)

public func fchownat(fd: Int32, path: String, owner: UInt32, group: UInt32, flag: Int32): Int32

功能:修改文件描述符对应的文件所有者和文件所有者所属组。

说明:

  • path 为相对路径且 fd 为特殊值 AT_FDCWD 时,则路径将相对于调用进程的当前工作目录。
  • path 为相对路径且 fdAT_FDCWD 时,则路径将相对于 fd 引用的文件所属目录。
  • path 为绝对路径时 fd 参数将被忽略。

参数:

  • fd: Int32 - 文件描述符。
  • path: String - 文件路径。
  • owner: UInt32 - 所有者 uid
  • group: UInt32 - 指定 gid 参数。
  • flag: Int32 - 取值可为 0,或 (256) 如果路径名是符号链接,不会取消引用它,而是返回有关链接本身的信息。

返回值:

  • Int32 - 操作成功时返回 0,失败时返回 -1

异常:

func getcwd()

public func getcwd(): String

功能:获取当前执行进程工作目录的绝对路径。

返回值:

  • String - 操作成功,返回包含路径信息的字符串,操作失败则返回空字符串。

func getgid()

public func getgid(): UInt32

功能:获取用户组 ID

返回值:

  • UInt32 - 当前用户组 ID

func getgroups(Int32, CPointer<UInt32>)

public unsafe func getgroups(size: Int32, gidArray: CPointer<UInt32>): Int32

功能:获取当前用户所属组的代码。

说明:

  • 如果 gidArray 参数大小的值为零,则函数仅返回表示用户所属的组数,不会向 gidArray 中放入 gid

参数:

  • size: Int32 - gidArray 可以容纳的 gid 的数量。
  • gidArray: CPointer<UInt32> - 存放 gid 信息。

返回值:

  • Int32 - 执行成功,返回组代码,执行失败, 返回 -1

func gethostname()

public func gethostname(): String

功能:获取主机名称,此名称通常是 TCP/IP 网络上主机的名称。

返回值:

  • String - 获取到的主机的名称字符串, 获取失败则返回空字符串。

func getlogin()

public func getlogin(): String

功能:获取当前登录名。

返回值:

  • String - 操作成功时返回登录名,失败时返回空字串。

func getos()

public func getos(): String

功能:从 /proc/version 文件中获取 Linux 系统的信息。例如: Linux version 4.15.0-142-generic (buildd@lgw01-amd64-036) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #146-Ubuntu SMP Tue Apr 13 01:11:19 UTC 2021

返回值:

  • String - 获取到的 Linux 系统的信息字符串。

func getpgid(Int32)

public func getpgid(pid: Int32): Int32

功能:获取 pid 指定的进程的 PGID,如果 pid 为零,返回调用进程的进程 ID

参数:

  • pid: Int32 - 目标进程 ID

返回值:

  • Int32 - 执行成功,返回进程组 ID,执行失败, 返回 -1

func getpgrp()

public func getpgrp(): Int32

功能:获取调用进程的父进程 ID

返回值:

  • Int32 - 返回调用进程的父进程 ID

func getpid()

public func getpid(): Int32

功能:获取调用进程的进程 ID(PID)

返回值:

  • Int32 - 返回调用进程的进程 ID(PID)

func getppid()

public func getppid(): Int32

功能:获取调用进程的父进程 ID

返回值:

  • Int32 - 返回调用进程的父进程 ID

func getuid()

public func getuid(): UInt32

功能:获取调用进程的真实用户 ID

返回值:

  • UInt32 - 当前真实用户 ID

func isBlk(String)

public func isBlk(path: String): Bool

功能:检查传入对象是否为块设备,并返回布尔类型。

参数:

  • path: String - 文件路径。

返回值:

  • Bool - 如果是,返回 true,否则返回 false

func isChr(String)

public func isChr(path: String): Bool

功能:检查传入对象是否为字符设备,返回布尔类型。

参数:

  • path: String - 文件路径。

返回值:

  • Bool - 如果是,返回 true,否则返回 false

func isDir(String)

public func isDir(path: String): Bool

功能:检查传入对象是否为文件夹,返回布尔类型。

参数:

  • path: String - 文件路径。

返回值:

  • Bool - 如果是,返回 true,否则返回 false

func isFIFO(String)

public func isFIFO(path: String): Bool

功能:检查传入对象是否为 FIFO 文件,返回布尔类型。

参数:

  • path: String - 文件路径。

返回值:

  • Bool - 如果是,返回 true,否则返回 false

func isLnk(String)

public func isLnk(path: String): Bool

功能:检查传入对象是否为软链路,返回布尔类型。

参数:

  • path: String - 文件路径。

返回值:

  • Bool - 如果是,返回 true,否则返回 false

func isReg(String)

public func isReg(path: String): Bool

功能:检查传入对象是否为普通文件,返回布尔类型。

参数:

  • path: String - 文件路径。

返回值:

  • Bool - 如果是,返回 true,否则返回 false

func isSock(String)

public func isSock(path: String): Bool

功能:检查传入对象是否为套接字文件,返回布尔类型。

参数:

  • path: String - 文件路径。

返回值:

  • Bool - 如果是,返回 true,否则返回 false

func isType(String, UInt32)

public func isType(path: String, mode: UInt32): Bool

功能:检查文件是否为指定模式的文件。如果是,返回 ture,否则返回 false。根据模式的不同值确定不同的类型。

参数:

  • path: String - 文件路径。
  • mode: UInt32 - 判断参数。

返回值:

  • Bool - 如果是指定模式的文件,返回 true,否则返回 false

func isatty(Int32)

public func isatty(fd: Int32): Bool

功能:用于测试文件描述符是否引用终端,成功时返回 true,否则返回 false

参数:

  • fd: Int32 - 文件描述符。

返回值:

  • Bool - 操作成功时返回 true,否则返回 false

func kill(Int32, Int32)

public func kill(pid: Int32, sig: Int32): Int32

功能:系统调用可用于向任何进程组或进程发送任何信号。

说明:

  • 如果 pid 大于 0,则信号 sig 将发送到 pid 对应的进程。
  • 如果 pid 等于 0,然后 sig 被发送到调用进程的进程组中的每个进程。
  • 如果 pid 等于 -1,则 sig 被发送到调用进程有权发送信号的每个进程。
  • 如果 pid 小于 -1,则将 sig 发送到 ID-pid 的进程组中的每个进程。

参数:

  • pid: Int32 - 进程 ID
  • sig: Int32 - 信号 ID

返回值:

  • Int32 - 操作成功时返回 0,否则返回 -1

func killpg(Int32, Int32)

public func killpg(pgid: Int32, sig: Int32): Int32

功能:将信号 sig 发送到进程组 pgrp,如果 pgrp0,则 killpg() 将信号发送到调用进程的进程组。

参数:

  • pgid: Int32 - 组 ID
  • sig: Int32 - 信号 ID

返回值:

  • Int32 - 操作成功时返回 0,否则返回 -1

func lchown(String, UInt32, UInt32)

public func lchown(path: String, owner: UInt32, group: UInt32): Int32

功能:修改文件链接本身所有者和所有者所属组。

参数:

  • path: String - 字符串类型的文件路径。
  • owner: UInt32 - 所有者 uid
  • group: UInt32 - 指定 gid 参数。

返回值:

  • Int32 - 操作成功时返回 0,失败时返回 -1

异常:

func link(String, String)

public func link(path: String, newpath: String): Int32

功能:为存在的文件创建链接,一个文件可以有多个指向其 i-node 的目录条目。

参数:

  • path: String - 文件路径。
  • newpath: String - 其他文件路径。

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func linkat(Int32, String, Int32, String, Int32)

public func linkat(fd: Int32, path: String, nfd: Int32, newPath: String, lflag: Int32): Int32

功能:创建相对于目录文件描述符的文件链接。

说明:

  • path 为相对路径且 fd 为特殊值 AT_FDCWD 时,则路径将相对于调用进程的当前工作目录。
  • path 为相对路径且 fdAT_FDCWD 时,则路径将相对于 fd 引用的文件所属目录。
  • path 为绝对路径时 fd 参数将被忽略。
  • newPath 的场景与 path 相同,只是当 newPath 为相对路径时是相对于 nfd 引用的文件所属目录。

参数:

  • fd: Int32 - 文件描述符。
  • path: String - 文件路径。
  • nfd: Int32 - 其他文件描述符。
  • newPath: String - 其他文件路径,如果 newpath 存在,则不会覆盖。
  • lflag: Int32 - AT_EMPTY_PATHAT_SYMLINK_FOLLOW0

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func lseek(Int32, Int64, Int32)

public func lseek(fd: Int32, offset: Int64, whence: Int32): Int64

功能:当文件进行读或写时,读或写位置相应增加。本函数用于控制文件的读或写位置。调用成功时,返回当前读写位置,即从文件开头开始的字节数。如果发生错误,返回 -1。

参数:

  • fd: Int32 - 打开文件的文件描述符。
  • offset: Int64 - 偏移量。
  • whence: Int32 - 表示控制模式。

返回值:

  • Int64 - 调用成功时,返回当前读写位置,即从文件开头开始的字节数。

func nice(Int32)

public func nice(inc: Int32): Int32

功能:更改当前线程的优先级。

说明:

  • 只有超级用户才能使用负的 inc 值,表示优先级高,进程执行得更快。 inc 代表当前进程的优先级,取值的范围是 +19(低优先级)到 -20
  • 成功时返回新值,失败时返回 -1inc 在值大于 19 时,返回最大值 19

参数:

  • inc: Int32 - 当前进程的优先级, 值的范围是 +19(低优先级)到 -20

返回值:

  • Int32 - 返回新优先级值。

func open64(String, Int32)

public func open64(path: String, oflag: Int32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func open64(String, Int32, UInt32)

public func open64(path: String, oflag: Int32, flag: UInt32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。
  • flag: UInt32 - 如果 oflag 设置了 O_CREAT 并且需要创建新文件,则 flag 参数标识对新文件的权限,否则 flag 不改变文件权限。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func openat(Int32, String, Int32)

public func openat(fd: Int32, path: String, oflag: Int32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • fd: Int32 - 路径的文件描述符。
  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func openat(Int32, String, Int32, UInt32)

public func openat(fd: Int32, path: String, oflag: Int32, flag: UInt32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • fd: Int32 - 路径的文件描述符。
  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。
  • flag: UInt32 - 如果 oflag 设置了 O_CREAT 并且需要创建新文件,则 flag 参数标识对新文件的权限,否则 flag 不改变文件权限。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func openat64(Int32, String, Int32)

public func openat64(fd: Int32, path: String, oflag: Int32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • fd: Int32 - 路径的文件描述符。
  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func openat64(Int32, String, Int32, UInt32)

public func openat64(fd: Int32, path: String, oflag: Int32, flag: UInt32): Int32

功能:打开文件并为其返回新的文件描述符,或在失败时返回 -1

说明:

  • 当文件打开方式参数 oflag 设置为 O_CREAT 时,可以通过参数设置文件权限。
  • O_RDONLYO_RDWRO_WRONLY 作为 oflag 取值为互斥关系,但可以与其他操作标识一起使用,如 O_APPEND

参数:

  • fd: Int32 - 路径的文件描述符。
  • path: String - 文件路径。
  • oflag: Int32 - 文件打开的方式。
  • flag: UInt32 - 如果 oflag 设置了 O_CREAT 并且需要创建新文件,则 flag 参数标识对新文件的权限,否则 flag 不改变文件权限。

返回值:

  • Int32 - 返回新的文件描述符,执行失败时返回 -1

异常:

func pread(Int32, CPointer<UInt8>, UIntNative, Int32)

public unsafe func pread(fd: Int32, buffer: CPointer<UInt8>, nbyte: UIntNative, offset: Int32): IntNative

功能:将 fd 指向的文件的 nbyte 字节传输到 buffer 指向的内存中。如果 nbyte0,则函数无效果,并返回 0。返回值是实际读取的字节数。返回值为 0 表示到达文件末尾或无法读取数据。此外,文件的读写位置随着读取字节的变化而变化。

说明:

  • 建议 nbyte 的大小与 buffer 的大小相同,且 buffer 的大小小于或等于 150000 字节。

参数:

  • fd: Int32 - 待读取文件的文件描述符。
  • buffer: CPointer<UInt8> - 缓冲区容器。
  • nbyte: UIntNative - 读取字节数,建议采用 buffer.size
  • offset: Int32 - 读取位置的偏移量。

返回值:

  • IntNative - 返回实际读取字节数,读取无效时返回 -1

func pwrite(Int32, CPointer<UInt8>, UIntNative, Int32)

public unsafe func pwrite(fd: Int32, buffer: CPointer<UInt8>, nbyte: UIntNative, offset: Int32): IntNative

功能:将 buffer 指向的内存中 nbyte 字节从指定偏移位置开始写入到 fd 指向的文件。指定文件的读写位置会随之移动。

说明:

  • 建议 nbyte 的大小与 buffer 的大小相同,且 buffer 的大小小于或等于 150000 字节。

参数:

  • fd: Int32 - 待读取文件的文件描述符。
  • buffer: CPointer<UInt8> - 缓冲区容器。
  • nbyte: UIntNative - 读取字节数,建议采用 buffer.size
  • offset: Int32 - 读取位置的偏移量。

返回值:

  • IntNative - 返回实际写入数,执行失败时返回 -1

func read(Int32, CPointer<UInt8>, UIntNative)

public unsafe func read(fd: Int32, buffer: CPointer<UInt8>, nbyte: UIntNative): IntNative

功能:将 fd 指向的文件的 nbyte 字节传输到 buffer 指向的内存中。如果 nbyte0,则函数无效果,并返回 0。返回值是实际读取的字节数。返回值为 0 表示到达文件末尾或无法读取数据。此外,文件的读写位置随着读取字节的变化而变化。

说明:

  • 建议 nbyte 的大小与 buffer 的大小相同,且 buffer 的大小小于或等于 150000 字节。

参数:

  • fd: Int32 - 待读取文件的文件描述符。
  • buffer: CPointer<UInt8> - 缓冲区容器。
  • nbyte: UIntNative - 读取字节数,建议采用 buffer.size

返回值:

  • IntNative - 返回实际读取字节数,读取无效时返回 -1

func remove(String)

public func remove(path: String): Int32

功能:删除文件或目录。

说明:

  • 对于文件,remove() 等同于 unlink()。
  • 对于目录,remove() 等同于 rmdir()。

参数:

  • path: String - 文件路径。

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func rename(String, String)

public func rename(oldName: String, newName: String): Int32

功能:重命名文件,如果需要将会移动文件所在目录。文件的任何其他硬链接不受影响。旧路径打开的文件描述符也不受影响。

说明:

各种限制将决定重命名操作是否成功,具体场景如下:

  • 如果 newName 已经存在,它将被原子替换,这样另一个尝试访问 newName 的进程就不会发现它丢失,但是可能会有一个窗口,其中旧路径和新路径都引用要重命名的文件。
  • 如果旧路径和新路径是引用同一文件的现有硬链接,则重命名不做任何操作,并返回成功状态。
  • 如果 newName 存在,但操作因某种原因失败,则重命名保证保留 newName 的实例。
  • oldName 可以指定目录。在这种情况下,newName 必须不存在,或者它必须指定空目录。
  • 如果旧路径引用符号链接,则链接将重命名;如果新路径引用符号链接,则链接将被覆盖。

参数:

  • oldName: String - 文件名(含路径)。
  • newName: String - 文件名(含路径)。

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func renameat(Int32, String, Int32, String)

public func renameat(oldfd: Int32, oldName: String, newfd: Int32, newName: String): Int32

功能:重命名文件,如果需要将会移动文件所在目录。

说明:

renameat() 与 rename() 处理相同,此处仅描述两者差异点:

  • oldName 为相对路径且 oldfd 为特殊值 AT_FDCWD 时,则路径将相对于调用进程的当前工作目录。
  • oldName 为相对路径且 oldfdAT_FDCWD 时,则路径将相对于 oldfd 引用的文件所属目录。
  • oldName 为绝对路径时 oldfd 参数将被忽略。
  • newName 的场景与 oldName 相同,只是当 newName 为相对路径时是相对于 newfd 引用的文件所属目录。

参数:

  • oldfd: Int32 - 文件描述符。
  • oldName: String - 文件名。
  • newName: String - 文件名。
  • newfd: Int32 - 文件描述符。

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func setgid(UInt32)

public func setgid(id: UInt32): Int32

功能:设置调用进程的有效组 ID,需要适当的权限。

参数:

  • id: UInt32 - 调用进程的有效组 ID 号。

返回值:

  • Int32 - 设置成功,返回 0,设置失败, 返回 -1

func sethostname(String)

public func sethostname(buf: String): Int32

功能:设置主机名,仅超级用户可以调用。

参数:

  • buf: String - 需要设置的主机名。

返回值:

  • Int32 - 设置成功,返回 0,设置失败, 返回 -1

异常:

func setpgid(Int32, Int32)

public func setpgid(pid: Int32, pgrp: Int32): Int32

功能:此函数将参数 pid 指定的组 ID 设置为参数 pgrp 指定的组 ID。 如果 pid0,则使用当前进程的组 ID

参数:

  • pid: Int32 - 进程 ID
  • pgrp: Int32 - 进程组 ID

返回值:

  • Int32 - 执行成功,返回组 ID,执行失败, 返回 -1

func setpgrp()

public func setpgrp(): Int32

功能:将当前进程所属的组 ID 设置为当前进程的进程 ID,此函数等同于调用 setpgid(0, 0)。

返回值:

  • Int32 - 执行成功,返回当前进程的组 ID,执行失败, 返回 -1

func setuid(UInt32)

public func setuid(id: UInt32): Int32

功能:设置调用进程的有效用户 ID,需要适当的权限。

参数:

  • id: UInt32 - 调用进程的有效用户 ID 号。

返回值:

  • Int32 - 设置成功,返回 0,设置失败, 返回 -1

func symlink(String, String)

public func symlink(path: String, symPath: String): Int32

功能:创建一个名为 symPath 链接到 path 所指定的文件。

说明:

  • 符号链接在运行时被解释为链接的内容已被替换到要查找文件或目录的路径中。
  • 符号链接可能包含..路径组件,这些组件(如果在链接的开头使用)引用链接所在目录的父目录。
  • 符号链接(也称为软链接)可以指向现有文件或不存在的文件,后者被称为悬空链接。
  • 符号链接的权限是不相关的,在跟踪链接时,所有权将被忽略,但当请求删除或重命名链接并且链接位于设置了粘滞位的目录中时,所有权将被检查。
  • 如果 symPath 已存在,则不会被覆盖。

参数:

  • path: String - 文件路径。
  • symPath: String - 链接文件路径。

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func symlinkat(String, Int32, String)

public func symlinkat(path: String, fd: Int32, symPath: String): Int32

功能:创建一个名为 symPath 链接到 pathfd 所指定的文件。

说明:

  • symPath 为相对路径且 fd 为特殊值 AT_FDCWD 时,则路径将相对于调用进程的当前工作目录。
  • symPath 为相对路径且 fdAT_FDCWD 时,则路径将相对于 fd 引用的文件所属目录。
  • symPath 为绝对路径时 fd 参数将被忽略。

参数:

  • path: String - 文件路径。
  • fd: Int32 - 文件描述符。
  • symPath: String - 链接文件路径。

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func ttyname(Int32)

public func ttyname(fd: Int32): String

功能:返回终端名称。

参数:

  • fd: Int32 - 文件描述符。

返回值:

  • String - 操作成功时返回路径名,失败时,返回 NULL

func umask(UInt32)

public func umask(cmask: UInt32): UInt32

功能:设置权限掩码。

参数:

  • cmask: UInt32 - 文件权限参数。

返回值:

  • UInt32 - 返回文件上一个掩码的值。

func unlink(String)

public func unlink(path: String): Int32

功能:从文件系统中删除文件。

说明:

  • 如果 path 是指向文件的最后一个链接,并且没有进程打开该文件,则该文件将被删除,它使用的空间可供重复使用。
  • 如果 path 是指向文件的最后一个链接,但仍然有进程打开该文件,该文件将一直存在,直到引用它的最后一个文件描述符关闭。
  • 如果 path 引用了符号链接,则该链接将被删除。
  • 如果 path 引用了套接字、FIFO 或设备,则该文件将被删除,但打开对象的进程可能会继续使用它。

参数:

  • path: String - 文件路径。

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func unlinkat(Int32, String, Int32)

public func unlinkat(fd: Int32, path: String, ulflag: Int32): Int32

功能:从文件系统中删除文件。

说明:

该函数系统调用的操作方式与 unlink 函数完全相同,但此处描述的差异除外:

  • path 为相对路径且 fd 为特殊值 AT_FDCWD 时,则路径将相对于调用进程的当前工作目录。
  • path 为相对路径且 fdAT_FDCWD 时,则路径将相对于 fd 引用的文件所属目录。
  • path 为绝对路径时 fd 参数将被忽略。

参数:

  • fd: Int32 - 文件描述符。
  • path: String - 文件路径。
  • ulflag: Int32 - 可以指定为 0,或者可以设置为控制 unlinkat() 操作的标志值按位或运算。标志值当前取值仅支持 AT_REMOVEDIR

返回值:

  • Int32 - 成功返回 0,错误返回 -1

异常:

func write(Int32, CPointer<UInt8>, UIntNative)

public unsafe func write(fd: Int32, buffer: CPointer<UInt8>, nbyte: UIntNative): IntNative

功能:将 buffer 指向的内存中 nbyte 字节写入到 fd 指向的文件。指定文件的读写位置会随之移动。

说明:

建议 nbyte 的大小与 buffer 的大小相同,且 buffer 的大小小于或等于 150000 字节。

参数:

  • fd - 待写入文件的文件描述符。
  • buffer - 缓冲区容器。
  • nbyte - 写入字节数,建议采用 buffer.size

返回值:返回实际写入数,执行失败时返回 -1