linkat() - Unix 和 Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

linkat() - Unix 和 Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

linkat - 创建相对于目录文件描述符的文件链接

语法

#include <unistd.h> 

int linkat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, int flags);

描述

linkat() 系统调用与 link(2) 的操作方式完全相同,除了本手册页中描述的区别之外。

如果在 oldpath 中给出的路径名是相对路径,则将其解释为相对于文件描述符 olddirfd 所引用的目录(而不是相对于调用进程的当前工作目录,link(2) 对相对路径名是这样做的)。

如果在 oldpath 中给出的路径名是相对路径,并且 olddirfd 是特殊值 AT_FDCWD,则 oldpath 相对于调用进程的当前工作目录进行解释(就像 link(2) 一样)。

如果在 oldpath 中给出的路径名是绝对路径,则忽略 olddirfd

newpath 的解释与 oldpath 相同,除了相对路径名相对于文件描述符 newdirfd 所引用的目录进行解释。

flags 参数当前未使用,必须指定为 0。

返回值

成功时,linkat() 返回 0。发生错误时,返回 -1,并且 errno 被设置为指示错误。

错误

link(2) 发生的相同错误也可能发生在 linkat() 中。以下附加错误可能发生在 linkat() 中
标签描述
EBADF olddirfdnewdirfd 不是有效的文件描述符。
ENOTDIR
  oldpath 是相对路径,并且 olddirfd 是一个文件描述符,引用的是除目录以外的文件;或者对于 newpathnewdirfd 也是如此

备注

请参阅 openat(2) 以了解 linkat() 的必要性。

符合标准

此系统调用是非标准的,但建议将其包含在 POSIX.1 的未来版本中。

版本

linkat() 在 Linux 内核 2.6.16 中添加。

参见



previous next Printer Friendly

广告


  

广告



广告