
IO进线程
文章平均质量分 57
南城花開
这个作者很懒,什么都没留下…
展开
-
进线程(三)——进程间通信
每块共享内存有大小限制: ipcs -l (cat /proc/sys/kernel/shmmax )3.读/写共享内存(通过指针访问/指针类型根据共享内存中存放的数据类型决定)无名管道只能用于具有亲缘关系的进程之间,这就限制了无名管道的使用范围。效率最高的进程间通信方式,进程可以直接读写内存,而不需要任何数据拷贝。多进程使用时,应由第一个进程创建,所有映射取消时才会真正的删除。 3.是一个消息的列表,用户可以添加/读取消息。 计数信号灯(代表某类资源):无名/有名。原创 2023-08-23 23:30:45 · 141 阅读 · 0 评论 -
进线程(二)——线程
以上程序运行过程中如果没有加锁,那么由于操作系统的特性,有可能因时间片用完导致结果出现偏差。加了锁之后,那么将保证每个线程的操作执行完毕。通过多线程和 p v 操作实现了cp操作。sem_init():信号量的初始化。sem_wait():P操作。sem_post():V操作。原创 2023-08-22 22:47:53 · 83 阅读 · 0 评论 -
进线程(一)——进程
execvp:以指针数组的形式传参。execl:以列表的形式传参。原创 2023-08-20 23:37:38 · 83 阅读 · 0 评论 -
IO(三)——库(动态库与静态库)
函数编译之后生成的二进制的集合本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小。原创 2023-08-18 19:32:45 · 157 阅读 · 0 评论 -
IO(二)——文件IO
每个打开的文件都有一个与其相关的“当前文件位移量”,它是一个非负整数,用以度量从文件开始处计算的字节数。通常,读/写操作都从当前文件位移量处开始,在读/写调用成功后,使位移量增加所读或者所写的字节数。上述代码打开了一个文件 myfile.txt,读取其中的内容,并将读取的数据存储在buffer数组中。最后,打印读取的字节数和读取的内容。 open()/creat():creat()的功能可以通过open()实现。上述代码通过lseek的偏移量实现了求文件的大小。***read示例***原创 2023-08-17 23:04:04 · 87 阅读 · 0 评论 -
IO(一)——IO基础及标准IO
以上代码从名为"input.txt"的文件中读取数据,并通过printf函数将其打印到屏幕上。定义:所有的I/O操作仅是简单的从程序移进或者移出,这种字节流,就称为流。以上代码将输出打印到名为"output.txt"的文件中。流程:打开文件 --> 操作文件 --> 关闭文件。标准出错决不会是全缓存的。分类:文本流/二进制流。关闭文件:fclose。原创 2023-08-16 23:02:06 · 206 阅读 · 0 评论