![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNIX/linux 编程
折腾怪
这个作者很懒,什么都没留下…
展开
-
task_struct源码
struct i387_struct{long cwd; // 控制字(Control word)。long swd; // 状态字(Status word)。long twd; // 标记字(Tag word)。long fip; // 协处理器代码指针。long fcs; // 协处理器代码段寄存器。long foo;long fos;long st_space[20]; ...原创 2021-03-20 17:41:36 · 243 阅读 · 0 评论 -
利用pmap查看进程的地址空间
对于mmap,实际上是创建了/或者合并一个新的线性地址区间测试代码如下:不调用mmap:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/mman.h>int main(){ char *bufp; int fd; st.原创 2021-03-19 11:02:51 · 308 阅读 · 0 评论 -
C++11可变模版参数的妙用+ 认真分析mmap:是什么 为什么 怎么用
认真分析mmap:是什么 为什么 怎么用泛化之美--C++11可变模版参数的妙用两篇文章都很好。注意一下mmap下面的评论。原创 2018-05-16 12:29:59 · 541 阅读 · 0 评论 -
APUE和UNP怎么学?
如果主要希望掌握UNIX下的编程技术,尤其是网络编程技术的话,可以有两条路走:1、以实际需要完善知识架构:为自己做一个项目,比方说自己写个简单的 Web 服务器,因为现在 Web 应用非常丰富,既有成熟的客户端如浏览器可以配合,又有足够全的文档如 RFC文档可供参考,再加上最基本的 socket 编程经验,就可以开始做自己的 Web 服务器。一步一步的为 Web 服务器添加流行的功能,如支持后台 ...转载 2018-05-17 17:09:52 · 14674 阅读 · 0 评论 -
C++ name mangling
name mangling在wiki上的定义:它提供了在函数、结构体、类或其它的数据类型的名字中编码附加信息一种方法,用于从编译器中向链接器传递更多语义信息。简单来说就是在编译阶段将函数名进行转换,加入域和参数信息,通过这种方式实现重载。Name mangling的目的就是避免重复,原理就是:找到一种编码方法,使得1)每一个名称经过转换后,要有唯一的名字;2)这种编码必须简单,而且要可逆,就是能由...原创 2018-05-10 17:27:00 · 812 阅读 · 0 评论 -
经典问题——进程和线程区别
写的很全面http://mp.weixin.qq.com/s?__biz=MjM5MDIzNDQ5MQ==&mid=205544379&idx=2&sn=d61335de549e0015ad9f131600d4eb22&scene=1&key=0acd51d81cb052bce2c7995ff6e99707a99605041e7a68d44569fcc2ca...转载 2018-04-22 21:30:27 · 104 阅读 · 0 评论 -
条件变量 pthread_cond_wait
1.先了解一下等待队列。(默认大家了解mutex,如果不了解:https://blog.csdn.net/qq_33890670/article/details/79967231)等待队列,是指linux系统中进程所组成的队列,就是需要其他事件的发生才会自己本身被唤醒的进程,也就是说这些进程本身是在等待其他某些进程为他 们提供进程发生的条件。他们是属于消费者的,但是现在他们要消耗的东西还没有产生,...原创 2018-04-17 14:29:13 · 792 阅读 · 0 评论 -
信号量 互斥量 条件变量
原文:https://blog.csdn.net/qq_32646795/article/details/78221005本文打算写一些和锁有关的东西,谈一谈我对锁的原理和实现的理解,主要包含以下方面信号量互斥量条件变量同步与互斥其实同步与互斥都是计算机科学里面概念性的东西,它们和什么编程语言、操作系统其实都没什么关系。很多人会混淆这两个概念,但是其实这两个概念并不一样(其实也不深奥,我们在写代码...转载 2018-04-16 21:50:07 · 1394 阅读 · 0 评论 -
函数指针、指针函数
多线程编程(基础知识补漏) void *(*run)(void *args); //函数指针,需要执行的任务最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。1、指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。类型标识符 *函数名(参数表)int *f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值...原创 2018-04-16 19:12:58 · 981 阅读 · 0 评论 -
void 指针 void* 到底什么意思?
最近在看线程池的实现,pthread的函数里面大量出现了 诸如 void *arg等无类型指针,经过多方查阅资料,谈谈自己的理解。void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。(关键)void指针指向的数据类型未定,将其值赋给其他值时要类型转换,但是任何类型的指针都可以直接赋值给void*,无需进行强制类型转换:;比如:void *arg;i...原创 2018-04-16 18:45:25 · 12360 阅读 · 1 评论