Linux c
文章平均质量分 69
门前一棵树
这个作者很懒,什么都没留下…
展开
-
strdup 的用法
在看lxc代码中很多出现这个strdup()函数所以非常好奇这个函数是做什么的,就查了一下这个东西是做什么用的。头文件:#include 定义函数:char * strdup(const char *s);函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以原创 2015-08-25 21:30:25 · 613 阅读 · 0 评论 -
采用dlopen、dlsym、dlclose加载动态链接库
这两天 看到Android中有很多load 动态库,所以搜了一下相关的关于加载动态库的总结此文章是转载1、前言 为了使程序方便扩展,具备通用性,可以采用插件形式。采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和处理动态链接库的系统调用,非常方便。本文先从使用上进行总结,涉及到基本的操作转载 2015-09-25 11:11:29 · 457 阅读 · 0 评论 -
Linux内存管理之mmap详解
一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用.转载 2015-09-07 22:29:56 · 430 阅读 · 0 评论 -
linux中waitpid系统调用
在上篇中的pid,如果没有wait的话会成为僵尸进程(zombie),因此从网上搜了关于waipid的介绍对于进程的一生可以用一些形象的比喻作一个小小的总结:随着一句fork,一个新进程呱呱落地,但它这时只是老进程的一个克隆。然后随着exec,新进程脱胎换骨,离家独立,开始了为人民服务的职业生涯。人有生老病死,进程也一样,它可以是自然死亡,即运行到main函数的最后一个”}”,从容转载 2015-08-28 09:59:15 · 536 阅读 · 0 评论 -
Linux 中使用 clone 函数
来源:http://my.oschina.net/sincoder/blog/132303接着上文没介绍完的clone的细节。Linux 上创建线程一般使用的是 pthread 库 实际上 libc 也给我们提供了创建线程的函数 ,那就是 cloneint clone( int (*fn)(void *), void *child_stack,转载 2015-08-28 10:38:56 · 1665 阅读 · 0 评论 -
Linux中/proc
摘要:Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。尽管在各种硬件平台上的 Linux 系统的 /proc 文件系统的基本概念都是相同的,但本文只讨论基于 intel x86 架构的 Linux /proc 文件系统。一./proc --- 一个虚拟文件系统/proc 文件系统是一种内核和内核模块用来向进程 (proce转载 2015-08-27 22:27:20 · 439 阅读 · 0 评论 -
linux下的 fork vfork和clone函数
Linux的用户进程不能直接被创建出来,因为不存在这样的API。它只能从某个进程中复制出来,再通过exec这样的API来切换到实际想要运行的程序文件。 复制的API包括三种:fork、clone、vfork。 这三个API的内部实际都是调用一个内核内部函数do_fork,只是填写的参数不同而已。 vfork,其实就是fork的部分过程,用以简化并提高效率。转载 2015-08-27 23:17:04 · 357 阅读 · 0 评论 -
linux dmesg命令
linux dmesg命令这个忘记在哪看到的东西,所以整理一下吧。 首先这个命令的功能是显示开机的一些信息, ‘dmesg’命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构、cpu、挂载的硬件,RAM等多个运行级别的大量的系统信息。当计算机启动时,系统内核(操作系统的核心部分)将会被加载到内存中。在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备。 可原创 2015-08-25 21:17:13 · 895 阅读 · 0 评论 -
关于lxc中看到的一些东西,ptmx,blockdev,sigprocmask
so,标题已经吊炸天了,这个是看lxc源码中出现的一堆东西。 没办法,学的差,什么不懂,不懂没问题,会google就ok么,所以整理了这篇杂篇。 ok,一个一个来总结 ptmx: 讲ptmx,不得不说tty,pty,等,很多人应该都用过终端的命令模式,那个就是pty 那么ptmx的作用就出来了,pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo原创 2015-08-25 22:29:57 · 805 阅读 · 0 评论 -
container_of()
最近在看linux 驱动,看到这个宏,同时这个宏在LINUX设备驱动程序中也有出现过。所以今天就研究一下这个是如何通过结构中的元素指针,来获取整个结构体的指针。先放出宏定义#define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mp原创 2015-11-26 22:49:27 · 394 阅读 · 0 评论