Linux学习笔记
文章平均质量分 94
菜一头包
这个作者很懒,什么都没留下…
展开
-
Linux多进程学习笔记(五)进程间通信(一)
在多线程编程中,线程间通信(Inter-Thread Communication,ITC)是必不可少的。共享内存消息传递信号量(Semaphores)互斥锁(Mutexes)条件变量(Condition Variables)屏障(Barriers)读写锁(Read-Write Locks)事件(Events)信号(Signals)共享变量内存映射文件(Memory-Mapped Files)套接字(Sockets)管道(Pipes)数据传输。原创 2024-11-08 20:45:53 · 811 阅读 · 0 评论 -
Linux多进程学习笔记(四)高级IO
(Input/Output)是一种 I/O 操作模式,其中 I/O 请求不会使发起请求的进程挂起(阻塞),如果请求不能立即完成,而是立即返回一个错误码,通常是 EAGAIN 或 EWOULDBLOCK。writev 是 Linux 系统中的一个系统调用,用于将多个非连续的内存缓冲区中的数据写入文件描述符,这个过程被称为“聚集写”(gather write)。通过 mmap,进程可以直接访问文件内容,就好像它们是内存的一部分一样,这可以提高文件 I/O 操作的效率。原创 2024-11-04 16:23:08 · 812 阅读 · 0 评论 -
Linux多进程学习笔记(三)并发(线程)
文章目录线程一、线程的概念二、线程的生命周期1.线程的创建2.线程的终止3.栈的清理4.线程的取消选项5.线程分离三、线程同步1.互斥量2.条件变量3.信号量4.读写锁四、线程属性1.线程的属性2.线程同步的属性五、重入1.线程与信号2.线程与fork六、竞争故障线程一、线程的概念一个正在运行的函数posix线程是一套标准,而不是实现openmp线程线程标识:pthread_t线程ID是用pthread_t数据类型表示,为一原创 2024-10-28 16:10:58 · 979 阅读 · 0 评论 -
Linux多进程学习笔记(二)并发(信号)
早期UNIX系统的一个特性是:如果进程在执行一个低速系统调用而阻塞期间捕捉到一个信号,则该系统调用就被中断不再继续执行。该系统调用返回出错,其errno设置为EINTR。这样处理是因为一个信号发生了,进程捕捉到它,这意味着已经发生了某种事情,所以是个好机会应当唤醒阻塞的系统调用原创 2024-10-16 15:55:22 · 782 阅读 · 0 评论 -
Linux多进程学习笔记(一)
有8种方式使进程终止(termination),其中5种为正常终止,它们是:在 C 语言中,exit、_exit 和 _Exit 都是用来终止当前进程的函数,但它们在终止进程时的行为有所不同。函数原型:status:退出状态码,通常 0 表示成功,非零表示错误。函数原型:status:退出状态码。函数原型:status:退出状态码。fork() 返回两次:在父进程中返回子进程的进程ID(一个正整数),在子进程中返回0。如果发生错误,则在父进程中返回 -1,并设置 errno 以指示错误。在for原创 2024-10-10 16:56:09 · 860 阅读 · 0 评论 -
#google命名法cpp
函数命名, 变量命名, 文件命名要有描述性;少用缩写.尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要. 不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词.注意, 一些特定的广为人知的缩写是允许的, 例如用i表示迭代变量和用T表示模板参数.模板参数的命名应当遵循对应的分类: 类型模板参数应当遵循的规则, 而非类型模板应当遵循的规则.原创 2024-10-08 20:06:01 · 811 阅读 · 0 评论 -
Linux下动态库与静态库学习笔记
库有两种:静态库和共享库(动态库)。win32平台下,静态库通常后缀为.lib,动态库为.dll;linux平台下,静态库通常后缀为.a,动态库为.so。动态库与静态库均以文件的形式存在,其本质上是一种可执行代码的二进制格式,可以被载入内存中执行。无论是动态链接库还是静态链接库,它们无非是向其调用者提供变量、函数和类。静态库(.a后缀结尾):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。原创 2024-10-08 17:19:37 · 853 阅读 · 1 评论