上一节讨论了程序出错的几种类型,知道了某些错误是 linux 无法处理的,例如程序遇到 0 作除数就会崩溃退出。
linux 中的信号
现在相当多计算机的处理器都有硬件除法单元了,所以程序中的除法运算都由硬件完成。在遇到除数为 0 这种情况时,硬件会通知 linux 内核,内核则...
2个月前 (01-07) 91℃ 0评论
0赞
在前面 15 节的介绍中,我们写了不少 linux 中的C语言程序。相信大家也发现了,即使再简单的C语言程序,也是有可能写错的,毕竟人不是机器。
linux 中的程序错误
写C语言程序出的错千奇百怪,有的是手误写错了符号,有的是头脑发热写反了逻辑,甚至有时还会写错数字。语法错误,...
2个月前 (01-07) 58℃ 0评论
0赞
相信对看了前面几节内容的朋友来说,在 linux 中开发 C语言程序已经不在话下了。不过,不知道大家注意到没,我们自己写的C语言程序编译后,要想在 shell 中执行,往往还要将可执行程序的路径也输入。
执行自定义的C语言程序,需要输入路径
例如,C语言程序编译后的可执行文件名...
2个月前 (01-07) 81℃ 0评论
0赞
上一节介绍了 linux 中的文件类型,并在文章最后使用 C语言编写了程序,该程序能够接受一个文件名参数,并打印出该文件的类型。不知道大家如何,反正我当初学编程时,发现(编译后的)可执行程序居然也能像(编写代码阶段的)函数一样接收参数,觉得太神奇了。
小编刚学习 C语言时...
2个月前 (01-06) 74℃ 0评论
0赞
前面两节介绍了一下 linux 中进程的资源,本节再来学习下 linux 中进程的调度。
linux 进程的时间记账
上一节说到为了尽量让每个进程都有相对公平的机会运行,linux 在设计进程调度时,提出了 cpu使用比的概念,那么 linux 是如何统计每个进程的 cpu 使...
2个月前 (01-06) 65℃ 0评论
0赞
前面几节讨论了在 linux 中进行 C语言开发时,执行 I/O 的基本函数。不过在举例做实验的过程中,都是围绕普通文件进行的。
linux 中的文件类型
还记得在第9节,我们提到 unix 系统(linux是类unix系统)认为“一切皆文件”吗?unix 系统中大多数文件是普...
2个月前 (01-06) 50℃ 0评论
0赞
经过上一节的介绍,我们知道在 linux 中进行 C语言开发时,多进程同时写数据到同一个文件,如果不小心处理,写入的数据可能会混乱。这主要是因为每个进程打开文件时,都有独立的文件表记录当前文件偏移量的原因。
那么,在一个进程中多次打开同一个文件同时写入数据,也可能出现数据混乱吗...
2个月前 (01-06) 53℃ 0评论
0赞
上一节提到在 linux 中进行 C语言程序开发时,多个进程打开同一个文件写入数据,如果不小心处理,会产生一些意想不到的错误。那么,会有哪些错误呢?该怎么解决呢?本节将给出几个 C语言实例,并在此基础上讨论这个问题。
多进程同时操作同一个文件,可能存在的问题
之前我们说过,C语言...
2个月前 (01-06) 103℃ 0评论
1赞
上一节介绍了 linux 中 C语言常用的“不带缓冲”的 I/O 函数组,并在文章最后举了一个读写文件的例子。通过例子,我们知道了 linux 内核会在读写文件时,记录文件的当前偏移量。
那么,linux 内核读写文件时,是在哪里记录的偏移量呢?而且,上一节的示例是在同一个进程...
2个月前 (01-06) 74℃ 0评论
0赞
前面花了 6 节介绍如何搭建基本的 linux 下的 C语言开发环境,现在终于可以愉快的进行 C语言程序开发了。小编决定先介绍下 linux 下常用的一些库函数,一来可以熟悉 linux 中有哪些现成的轮子可用,二来可以锻炼一下我们的 C语言编程水平,毕竟这系列文章是面向 C语言...
2个月前 (01-06) 69℃ 0评论
0赞