当前位置:网站首页 > Go语言开发 > 正文

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



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

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

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

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

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

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

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

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

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

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



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

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



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

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

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

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

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

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



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

 
  

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

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

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

或者

实现功能:两个文件,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命令)

 
  

在这里插入图片描述

在这里插入图片描述
调用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自己的拷贝命令呢。

到此这篇linux怎么学c语言(linux怎么使用c语言)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 嵌入式驱动开发前景(嵌入式驱动开发是什么)2026-05-20 10:27:08
  • windows驱动开发教程(windows驱动开发视频教程)2026-05-20 10:27:08
  • 断开连接是什么意思kpl(csgo远程主机断开连接是什么意思)2026-05-20 10:27:08
  • 时钟代码c语言(c语言编写时钟程序)2026-05-20 10:27:08
  • 行为驱动开发指南 百度网盘(行为驱动开发指南 pdf)2026-05-20 10:27:08
  • 小学生学编程入门先学什么(小学生学编程入门先学什么语言)2026-05-20 10:27:08
  • ad20怎么设置中文(ad20语言设置成中文)2026-05-20 10:27:08
  • 苹果开发者账号每年多少钱(苹果开发者账号每年需要续费吗?)2026-05-20 10:27:08
  • linux怎么学c语言(linux c语言教程)2026-05-20 10:27:08
  • linux驱动开发工资(linux驱动开发工资高吗)2026-05-20 10:27:08
  • 全屏图片