![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 79
Eighteenzi
这个作者很懒,什么都没留下…
展开
-
gcc编译器
版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。其他作品本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或转载 2012-06-28 16:28:35 · 1092 阅读 · 0 评论 -
通过/proc/PID/status查看进程内存占用情况
网上有很多资料描述status的内容,但是有些是错误的。综合比较了一下,下面2个的内容应该是正确的。1、https://locklessinc.com/articles/memory_usage/VmPeak:Peak virtual memory usageVmSize:Current virtual memory usageVmL原创 2018-01-08 16:47:36 · 7463 阅读 · 0 评论 -
ioctl函数
本函数影响由fd 参数引用的一个打开的文件。 #include int ioctl( int fd, int request, .../* void *arg */ ); 返回0 :成功 -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request 参数。 我们可以把和网络相关的请求划分为6 类: 套接口操作 文件操作 接口操作转载 2012-07-20 12:01:47 · 767 阅读 · 0 评论 -
ioctl中的ifconf ifreg 结构
用ioctl获得本地ip地址时要用到两个结构体ifconf和ifreq,它们对于大多数人来说都是比较陌生的,这里给大家一种比较简单的理解方法,当然只一种帮助理解的方法,在描述中可能会有一些地方与真实定义有所出入,仅供参考.首先先认识一下ifconf和ifreq://ifconf通常是用来保存所有接口信息的//if.hstruct ifconf{int ifc_len转载 2012-07-20 11:37:30 · 1693 阅读 · 1 评论 -
sendmsg recvmsg函数
sendmsg(2)与recvmsg(2)函数这些函数为程序提供了一些其他的套接口I/O接口所不具备的高级特性。下面的内容我们将会先来看一下sendmsg来介绍这些主题。然后将会完整的介绍recvmsg函数,因为他们的函数接口是相似的。接下来,将会描述msghdr的完整结构。sendmsg(2)函数现在是时候进入这个大同盟了。从概念上说,sendmsg函数是所有写入函数的基础,而他是从转载 2012-07-19 12:05:40 · 25508 阅读 · 0 评论 -
内核中用于数据接收的结构体struct msghdr
我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构。在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1。我们使用系统调用sendto发送这个icmp包。 ssize_t sendto(int s, const void *buf, size_t len, int flags,转载 2012-07-19 12:03:25 · 1285 阅读 · 0 评论 -
内存分配地址的对齐
void * memalign (size_t boundary, size_t size) 看nginx源代码中的实现#define ngx_align(d, a) (((d) + (a - 1)) & ~(a - 1)) 返回的地址值为d后第一个是a的整数倍的值。a是2的整数次幂。假设a = 2^n,即a的二进制表示中末尾有n个0。假设返回的结果为A。则A-d的原创 2012-08-03 18:35:01 · 1270 阅读 · 0 评论 -
linux memalign、valloc函数
在GNU系统中,malloc或realloc返回的内存块地址都是8的倍数(如果是64位系统,则为16的倍数)。如果你需要更大的粒度,请使用memalign或valloc。这些函数在头文件“stdlib.h”中声明。 在GNU库中,可以使用函数free释放memalign和valloc返回的内存块。但无法在BSD系统中使用,而且BSD系统中并未提供释放这样的内存块的途径。转载 2012-08-03 16:20:27 · 21864 阅读 · 0 评论 -
简介struct cmsghdr结构
附属信息可以包括0,1,或是更多的单独附属数据对象。在每一个对象之前都有一个structcmsghdr结构。头部之后是填充字节,然后是对象本身。最后,附属数据对象之后,下一个cmsghdr之前也许要有更多的填充字节。在这一章,我们将要关注的附属数据对象是文件描述符与证书结构。下图显示了一个包含附属数据的缓冲区是如何组织的。我们需要注意以下几点:cmsg_len与CMSG_LEN转载 2012-07-19 12:06:14 · 14440 阅读 · 0 评论 -
简介I/O向量、sendv、writev
在我们了解使用附属数据工作的复杂函数之前,我们应该熟悉被readv(2)与writev(2)系统调用所使用的I/O向量。我们不仅将会发现这些函数是十分有用的,而他们的工作方式也被引入了一些附属数据函数中。这会使得后面的理解更为容易。I/O向量(struct iovec)readv(2)与writev(2)函数都使用一个I/O向量的概念。这是由所包含的文件定义的:#include s转载 2012-07-19 12:05:07 · 6409 阅读 · 0 评论 -
环境变量
一、什么是环境变量? Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。二、定制环境变量 环境变量是和Shell紧密相关的,它是通过Shell命令来设置的。环境变量又可以被所有当前用户所运行的程序所使用。对于bash来说,可以通过变量转载 2012-07-18 11:05:11 · 515 阅读 · 0 评论 -
fork的返回值
fork简介: fork英文原意是“分岔,分支”的意思,而在操作系统中,乃是著名的Unix(或类Unix,如Linux,Minix)中用于创建子进程的系统调用。 【NOTE1】 fork () 的作用是什么?换句话说,你用 fork () 的目的是什么? ――是为了产生一个新的进程,地球人都知道 :)产生一个什么样的进程? ――和你本来调用 fork (转载 2012-07-18 17:06:09 · 664 阅读 · 0 评论 -
/proc文件系统读出来的数据是最新的吗?
每次从/proc下读出来的数据都是最新的,没有“更新时间”这一说。每当读文件时,数据都是即时生成的。参考:https://unix.stackexchange.com/questions/74713/how-frequently-is-the-proc-file-system-updated-on-linux原创 2018-01-08 18:08:47 · 424 阅读 · 0 评论