2026年linux怎么学c语言(linux怎么使用c语言)

linux怎么学c语言(linux怎么使用c语言)上节课我们知道了 什么是文件的权限 以及如何去修改文件的权限 这节课 我们将带着大家一起使用 Linux 系统里面的 API 来操作文件 一起跟着笔者的步伐走起 纸上得来终觉浅 绝知此事要躬行 陆游 Linux 系统编程篇 基础篇首页传送门 在 Linux 系统编程中 我们先来看基本的 API 理解 基本的文件操作函数是非常重要的 这节我们带着大家一起进入文件编程



纸上得来终觉浅,绝知此事要躬行 ——陆游

《Linux系统编程篇》——基础篇首页传送门

在Linux系统编程中,我们先来看基本的API,理解基本的文件操作函数是非常重要的。

这节我们带着大家一起进入文件编程。

文件我们想到无非就三个操作,1、打开文件,2、操作文件内容,3、关闭文件

把大象装进冰箱?是的,就是这么简单。

于是乎,我们如何装进这个大象是我们学习的关键,用什么工具去打开冰箱(文件),如何把大象放进去(操作文件内容),放进去关冰箱(释放文件)

我们在Linux系统上,当然用的是Linux系统的API,来操作系统的文件了,Linux系统给我们提供哪些工具呢?

下面我列举了一些。可以先看一下,大致熟悉一下open

 
  
  • 第一个原型是用于打开已存在文件的,第二个原型是用于创建新文件的。
  • 参数是一个指向要打开的文件的路径名的指针。
  • 参数指定了打开文件的方式,比如只读、只写、读写等。常见的标志包括、、等。
  • 参数用于指定新文件的权限,通常用于创建文件时。比如表示文件所有者可读写,其他用户只读。
  • 是新创建文件的权限,通常与 标志一起使用。
  • 返回值:成功时返回文件描述符(非负整数),失败时返回 -1。

函数用于关闭一个先前打开的文件。下面是 函数的原型和说明:

 
  
  • 是之前使用 或其他文件操作函数返回的文件描述符。通过关闭文件描述符,可以释放系统资源并确保文件的正确关闭。
  • 返回值:如果成功关闭文件,则返回值为 0。如果出现错误,返回值为 -1。

函数用于从已打开文件中读取数据。下面是 函数的原型和说明:

 
  
  • 是之前使用 打开文件返回的文件描述符。
  • 是一个指向存储读取数据的缓冲区的指针。
  • 是要读取的字节数。
  • 返回值:成功时返回实际读取的字节数,如果到达文件末尾则返回 0,出现错误时返回 -1。

函数用于向文件中写入数据。下面是 函数的原型和说明:

 
  
  • 是之前使用 打开文件返回的文件描述符。
  • 是一个指向要写入的数据的缓冲区的指针。
  • 是要写入的字节数。
  • 返回值:成功时返回实际写入的字节数,出现错误时返回 -1。

函数在Linux系统中用于设置文件偏移量,即移动文件描述符的读写位置。下面是 函数的原型和说明:

 
  
  • 是之前使用 打开文件返回的文件描述符。
  • 是要移动的偏移量,可以为正数、负数或零。
  • 用于指定偏移量的基准位置,可以是 、 或 。具体含义如下:
    • :从文件开头开始偏移。
    • :从当前文件位置开始偏移。
    • :从文件末尾开始偏移。
  • 返回值:返回新的文件偏移量,若出现错误返回 -1。

函数用于删除一个文件的目录项(文件名),并减少该文件的链接数。如果链接数变为零,则文件的数据块将被释放。下面是 函数的原型和说明:

 
  

是要删除的文件的路径名。

  • 返回值:成功时返回 0,失败时返回 -1。

就只有这些个操作函数吗?不,不是的,后面可能会遇到新的接口,接触自己认知以外的函数,我们遇到这些应该怎么办,不要慌,我告诉你怎么办。

或者


在这里插入图片描述
总之,建议找不到函数的时候多看这个man手册,他里面都是有结构规律的,只需要找我们需要的东西就好,不用抠字眼一个一个去通读。

实现功能:两个文件,demo1.c 以及 demo2.c

  • demo1.c创建文件
  • demo2.c删除文件

demo1.c创建文件

使用open创建一个文件,使用write向里面写入一段话“hello Linux,i im jiaju(Strange_Head) I’m coming.”,然后读取(read)全部的内容,打印到命令行,然后再次使用write尾部追加写入,“家驹很帅,梦想很近”,”-------------------------“,最后操作完成,使用close关闭文件.

注意,容易混的地方是lseek(将他理解为编辑文件时候的光标),初学者请慢慢理解下面的代码,附带详细注释。

 
  

在这里插入图片描述

demo2.c删除文件(手动制作rm命令)

直接调用unlink删除文件。
我们直接调用这个命令删除一个的固定文件,感觉不爽,既然要删除文件,如果我能指定就好了,直接做一个低配版的rm命令!
使用argc,argv的特性,轻松完成

 
  

在这里插入图片描述

在这里插入图片描述
调用demo1.c编译出的https://zhangjiaju.blog.csdn.net/article/details/creat,生成家驹很帅.txt

调用demo2.c编译出的https://zhangjiaju.blog.csdn.net/article/details/myrm, 删除生成的文件。

fopen,fread,fwrite,flseek等等……

很多小伙伴可能知道,fopen可以打开文件,他和open有什么不一样呢,明明最终的结果是一样的。

答案:当然不一样,除了多了一个前缀f,还多了很多细节,我们来拓展一下。

  1. 函数是一个系统调用,而 函数是C标准库提供的函数。
  2. 函数是低级别的函数,提供了更多的控制和自由度,可以指定文件的打开模式(读、写、追加等)、权限等。 函数则是高级别函数,通常用于简单的文件操作,它提供了一种更简单的接口,隐藏了一些底层细节。
  3. 函数返回一个文件描述符(file descriptor),而 函数返回一个 类型的指针。文件描述符是一个整数,用于标识已打开的文件,而 是一个指向
    结构体的指针,该结构体包含了文件流的信息。
  4. 使用 函数打开文件后,通常需要使用 和 等系统调用来进行读写操作;而使用 函数打开文件后,可以使用 、 等标准库函数来进行读写操作。
  5. 函数是Unix标准的一部分,而 函数是C标准库的一部分。
  6. 有缓冲区,没有

无论是使用open,还是fopen,看个人喜好,已经代码编程习惯,我是倾向于open系列的。

今天的学习就到这里了,唯手熟尔,我这里实现了一个rm功能,是不是可以自己想一想,实现一个cp自己的拷贝命令呢。

今天的文章 2026年linux怎么学c语言(linux怎么使用c语言)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-07-30 09:11
下一篇 2026-01-18 09:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/33098.html