C语言中建立和删除文件连接的相关函数讲解

 更新时间:2015年09月01日 15:35:25   投稿:goldensun  
这篇文章主要介绍了C语言中建立和删除文件连接的相关函数讲解,分别为link和unlink函数的使用,需要的朋友可以参考下

C语言link()函数:建立文件连接
头文件:

#include <unistd.h>

定义函数:

int link (const char * oldpath, const char * newpath);

函数说明:link()以参数newpath 指定的名称来建立一个新的连接(硬连接)到参数oldpath 所指定的已存在文件. 如果参数newpath 指定的名称为一已存在的文件则不会建立连接.

返回值:成功则返回0, 失败返回-1, 错误原因存于errno.

附加说明:link()所建立的硬连接无法跨越不同文件系统, 如果需要请改用symlink().

错误代码:
1、EXDEV 参数oldpath 与newpath 不是建立在同一文件系统.
2、EPERM 参数oldpath 与newpath 所指的文件系统不支持硬连接
3、EROFS 文件存在于只读文件系统内
4、EFAULT 参数oldpath 或newpath 指针超出可存取内存空间.
5、ENAMETOLLONG 参数oldpath 或newpath 太长
6、ENOMEM 核心内存不足
7、EEXIST 参数newpath 所指的文件名已存在.
8、EMLINK 参数oldpath 所指的文件已达最大连接数目.
9、ELOOP 参数pathname 有过多符号连接问题
10、ENOSPC 文件系统的剩余空间不足.
11、EIO I/O 存取错误.

范例:

/* 建立/etc/passwd 的硬连接为pass */
#include <unistd.h>
main()
{
  link("/etc/passwd", "pass");
}

C语言unlink()函数:删除文件
头文件:

#include <unistd.h>

定义函数:

int unlink(const char * pathname);

函数说明:unlink()会删除参数pathname 指定的文件. 如果该文件名为最后连接点, 但有其他进程打开了此文件, 则在所有关于此文件的文件描述词皆关闭后才会删除. 如果参数pathname 为一符号连接, 则此连接会被删除。

返回值:成功则返回0, 失败返回-1, 错误原因存于errno

错误代码:
1、EROFS 文件存在于只读文件系统内。
2、EFAULT 参数pathname 指针超出可存取内存空间。
3、ENAMETOOLONG 参数pathname 太长。
4、ENOMEM 核心内存不足。
5、ELOOP 参数pathname 有过多符号连接问题。
6、EIO I/O 存取错误。

相关文章

  • QT5实现电子时钟

    QT5实现电子时钟

    这篇文章主要为大家详细介绍了QT5实现电子时钟,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 详解C++中十六进制字符串转数字(数值)

    详解C++中十六进制字符串转数字(数值)

    这篇文章主要介绍了详解C++中十六进制字符串转数字(数值)的相关资料,这里提供两种实现方法,需要的朋友可以参考下
    2017-08-08
  • windows 下C++生成Dump调试文件与分析

    windows 下C++生成Dump调试文件与分析

    dump文件是C++程序发生异常时,保存当时程序运行状态的文件,是调试异常程序重要的方法,所以程序崩溃时,除了日志文件,dump文件便成了我们查找错误的最后一根救命的稻草,这篇文章主要介绍了windows 下C++生成Dump调试文件与分析,需要的朋友可以参考下
    2023-04-04
  • C语言实现三子棋的步骤和代码详解

    C语言实现三子棋的步骤和代码详解

    这篇文章主要介绍了C语言实现三子棋的步骤和代码详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • C++赋值运算符

    C++赋值运算符

    这篇文章主要介绍了C++赋值运算符,C++当中允许类对象赋值,这是通过默认的重载赋值运算符实现的,下面我们就来介绍介绍该内容吧,,需要的朋友可以参考一下
    2022-01-01
  • 使用C语言实现字符串逆序操作案例

    使用C语言实现字符串逆序操作案例

    这篇文章主要介绍了使用C语言实现字符串逆序操作案例,本文包含使用C语言的两种方法去实现,递归和非递归,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++常见容器获取头元素的方法大全

    C++常见容器获取头元素的方法大全

    在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细列举C++标准库中所有常见容器获取头元素的方法,并对每种方法进行简要说明,需要的朋友可以参考下
    2025-03-03
  • C++中使用FFmpeg适配自定义编码器的实现方法

    C++中使用FFmpeg适配自定义编码器的实现方法

    本文介绍了在C++中使用FFmpeg库进行自定义编码器适配的实现方法。文章通过具体的代码示例,介绍了FFmpeg的基本使用方法和自定义编码器的实现过程,帮助读者了解如何在C++中进行音视频编码和解码的开发工作,并能够实现自定义的编码器适配
    2023-04-04
  • c语言实现php的trim标签

    c语言实现php的trim标签

    本文给大家介绍的是使用C语言实现php的trim标签功能的代码,非常的实用,其主要作用是清除字符串开头结尾除空白,有需要的小伙伴可以参考下。
    2016-01-01
  • OpenGL绘制三次Bezier曲线

    OpenGL绘制三次Bezier曲线

    这篇文章主要为大家详细介绍了OpenGL绘制三次Bezier曲线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04

最新评论