
linux系统编程
文章平均质量分 81
主要介绍linux系统相关的api原理以及使用
路飞H
这个作者很懒,什么都没留下…
展开
-
linux线程私有数据详解
在单线程程序中,函数经常使用全局变量或静态变量,这是不会影响程序的正确性的,但如果线程调用的函数使用全局变量或静态变量,则很可能引起编程错误,因为这些函数使用的全局变量和静态变量无法为不同的线程保存各自的值,而当同一进程内的不同线程几乎同时调用这样的函数时就可能会有问题发生。而解决这一问题的一种方式就是使用线程私有数据。线程私有数据采用了一种被称为一键多值的技术,即一个键对应多个数值。访问数据时都是通过键值来访问,好像是对一个变量进行访问,其实是在访问不同的数据。原创 2023-10-07 14:17:48 · 279 阅读 · 0 评论 -
linux系统调用 高级IO
【代码】linux系统调用 高级IO。原创 2023-05-23 20:48:45 · 391 阅读 · 0 评论 -
linux系统编程 进程间通信
我们讲的是进程的资源保护,实际上线程的资源保护也是类似的原理。为了更直观的讲解,我们直接通过例子来介绍什么是“进程资源保护”。(1)例子1:多进程操作共享内存比如,多个进程同时向共享内存里面写数据时,可能会出现数据相互干扰的情况。比如,某个进程写数据操作还没有写完时,进程的时间片就到了,然后被切换到另一个写“共享内存”的进程上运行,这个进程会接着往共享内存里面写数据,此时显然就把第一个进程写的数据给隔断,这就形成了数据相互干扰。原创 2023-05-22 18:05:32 · 356 阅读 · 2 评论 -
linux系统编程 信号
仅fork时子进程会继承父进程fork之前所设置的信号处理方式。当有exec加载新程序时(1)子进程继承的处理方式是忽略 或 默认处理方式时,exec新程序后设置依然有效。(2)如果子进程继承是捕获处理方式时,exec新程序后将被还原为默认处理方式。原创 2023-05-20 17:13:12 · 189 阅读 · 0 评论 -
linux系统编程 进程控制
我们说,将程序代码从硬盘拷贝到内存上,在内存上动态运行的程序就是进程。原创 2023-05-19 18:49:23 · 242 阅读 · 1 评论 -
linux系统编程 进程环境
一、进程所需的运行环境有哪些? 所需环境有:启动代码、环境变量、c程序的内存空间布局、库等。 (1)启动代码 (a)什么是启动代码? 故名思意就是启动程序的代码,其实所有高级语言编写的程序,都有启动代码,对于我们C语言程序来说也是如此, 也有自己的启动代码。 (b)c程序的启动代码 大家都知道,c程序都是从main函数开始运行的,不过我们平时只看到main调用别的子函数,但是main本身作为 一个函数,其实main也是需要被人调用的,原创 2023-05-16 21:50:02 · 352 阅读 · 0 评论 -
linux系统编程 标准io
函数描述:fopen 打开一个指定的文件。filename:指定了被打开的文件的路径(相对路径或绝对路径)mode:指定了被打开文件的操作方式,如下:“r”:只读“w”:只写,并将文件截断为0“a”:只写,以追加方式从文件尾开始写“r+”:读写“w+”:读写,并将文件截断为0“a+”:读写,以追加方式从文件尾开始写成功:指向FILE的指针失败: NULL实现重定向,把预定义的标准流文件定向到由path指定的文件中。标准流文件具体是指stdin、stdout和stderr。原创 2023-05-15 23:36:14 · 237 阅读 · 0 评论 -
linux系统编程 获取系统信息
存放用户账户信息的文件,就是口令文件。原创 2023-05-15 15:16:34 · 425 阅读 · 1 评论 -
linux系统编程 文件属性
在一般文件的情况下,对于普通文件来说,文件数据的理论大小 == 在块设备上实际占用的空间大小。但是空洞文件却不是这样的,对于空洞文件来说,文件数据的理论大小 > 在块设备上实际占用的空间大小。原创 2023-05-14 14:26:14 · 305 阅读 · 0 评论 -
linux系统编程 文件io
open成功就会返回一个非负整数(0、1、2、3...)的文件描述符,比如我们示例程序中open返回的文件描述符是3。文件描述符指向了打开的文件,后续的read/write/close等函数的文件操作,都是通过文件描述符来实现的。在前面的课程中,我们说当open打开文件成功后,会创建相应的结构体(数据结构),用于保存被打开文件的相关信息,对文件进行读写等操作时,会用到这些信息,这个数据结构就是我们要讲的“文件描述符表”。原创 2023-05-09 22:55:13 · 561 阅读 · 0 评论