Linux
thinkinwm
Do not pray for easy lives. Pray to be stronger men.
展开
-
内存耗用:VSS/RSS/PSS/USS 的介绍
https://www.cnblogs.com/jycboy/p/5453533.htmlVSS:Virtual Set Size,虚拟耗用内存。它是一个进程能访问的所有内存空间地址的大小。这个大小包含了一些没有驻留在RAM中的内存,就像mallocs已经被分配,但还没有写入。VSS很少用来测量程序的实际使用内存。RSS:Resident Set Size,实际使用物理内存。RSS是一个进程在RAM中实际持有的内存大小。RSS可能会产生误导,因为它包含了所有该进程使用的共享库所占用的内存,.转载 2021-02-22 21:03:43 · 1345 阅读 · 0 评论 -
socketpair的使用
http://blog.csdn.net/sunnyboychina/article/details/1884076建立一对匿名的已经连接的套接字socketpair函数概要如下:#include #include int socketpair(int domain, int type, int protocol, int sv[2]);sys/types.h文件需转载 2013-03-25 11:40:38 · 586 阅读 · 0 评论 -
signal(SIGPIPE, SIG_IGN)
当服务器close一个连接时,若client端接着发数据。根据TCP 协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN转载 2013-03-23 19:49:18 · 782 阅读 · 0 评论 -
prctl()函数应用
int prctl(int option,unsigned longarg2,unsigned long arg3,unsigned long arg4,unsigned long arg5)这个系统调用指令是为进程制定而设计的,明确的选择取决于option:PR_GET_PDEATHSIG :返回处理器信号; PR_SET_PDEATHSIG :arg2作为处理器转载 2013-03-25 16:20:31 · 2549 阅读 · 0 评论 -
execl函数
相关函数:execle, execlp, execv, execve, execvp1.表头文件:#include 2.函数定义:int execl(const char *path, const char *arg, ...);execl()用来执行参数path字符串所代表的文件路径, 接下来的参数代表执行该文件时传递的argv[0],argv[1]...转载 2013-03-25 20:06:52 · 766 阅读 · 0 评论 -
fgets函数
原型是char *fgets(char *buf, int bufsize, FILE *stream);参数:*buf: 字符型指针,指向将存储到的数据地址。bufsize: 整型数据,指明buf指向的字符数组的大小。*stream: 文件结构体指针,将要读取的文件流。功能:从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在bu转载 2013-03-25 21:00:18 · 1722 阅读 · 0 评论 -
linux中select()函数分析
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2013-03-18 17:23:01 · 549 阅读 · 0 评论 -
fcntl 函数
表头文件#include #include #include fcntl.h>函数类型定义函数 int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);fcntl转载 2013-03-26 23:14:22 · 549 阅读 · 0 评论 -
setsid()
setsid-----------------------------------------------setsid命令linux常用的命令setsid命令的一般格式:setsid();说明:当进程是会话组长时setsid()调用失败。setsid()调用成功后,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离。由于会话过程对控制终端的独占性,进程同时与转载 2013-03-25 20:17:27 · 1557 阅读 · 0 评论 -
vim全局替换命令
语法为 :[addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串/g[addr] 表示检索范围,省略时表示当前行。如:“1,20” :表示从第1行到20行;“%” :表示整个文件,同“1,$”;“. ,$” :从当前行到文件尾;s : 表示替换操作[option] : 表示操作类型如:g 表示全局替换; c 表示进转载 2013-04-27 17:15:37 · 622 阅读 · 0 评论 -
Linux下/proc目录简介
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文转载 2013-11-22 10:00:22 · 654 阅读 · 0 评论 -
Linux用户空间与内核空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。转载 2013-11-22 10:07:05 · 660 阅读 · 0 评论 -
Linux中的likely()与unlikely()
likely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢?首先明确: if (likely(value))等价于if (value) if (unlikely(value))等价于if (value)也就是说likely()和unlikely()从阅读和理解的角度是一样的。这两个宏在内核中定义如下:#de转载 2013-11-22 11:02:48 · 730 阅读 · 0 评论 -
syslogd 扫盲
http://blog.csdn.net/voipmaker/article/details/6330713syslogd守护进程介绍:在同一时间会发生许许多多的事情,而在终端窗口中断开连接的网络服务就更是如此了。因此,提供一个记录特殊事件和消息的标准机制就非常有必要了。linux使用syslogd守护进程来提供这个服务。syslogd守护进程提供了一个对系统活动和消息转载 2013-11-27 10:48:39 · 1449 阅读 · 0 评论 -
sysrq.txt
http://www.ibm.com/developerworks/cn/linux/l-cn-sysrq/SysRq 是什么你是否遇到服务器不能通过 SSH 登录,也不能通过本地终端登录,但是却能 ping 通,数字键盘锁还可以响应击键操作的情况?在这种情况下,你除了按下电源或复位键之外,还做过什么吗?你是否想过这种情况是可能恢复的呢?你是否想过收集更多的信息转载 2013-11-27 14:39:50 · 2203 阅读 · 0 评论 -
Linux vmstat命令实战详解
http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.htmlvmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相转载 2017-01-26 11:56:52 · 437 阅读 · 0 评论 -
linux系统下proc文件系统内容
http://www.cnblogs.com/cute/archive/2011/04/20/2022280.html 另外,可以参考这个http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-proc.html内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统。Linux系统上的/proc目录是一...转载 2018-07-18 16:02:11 · 230 阅读 · 0 评论 -
pthread_create用法
http://www.cppblog.com/tuantuan/archive/2009/08/02/91970.html今天开始学习linux下用C开发多线程程序,Linux系统下的多线程遵循POSIX线程接口,称为pthread。#include int pthread_create(pthread_t *restrict tidp,转载 2013-03-19 09:56:20 · 603 阅读 · 0 评论 -
Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)
Unix IPC包括:管道(pipe)、命名管道(FIFO)与信号(Signal) 管道(pipe)管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;实现机制:管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放入信转载 2013-03-23 19:54:30 · 892 阅读 · 0 评论 -
了解进程运行环境
cat /proc//environ例如:=> ps -ef | grep db2sysc | grep db2inst1db2inst1 7493 7491 2 10:38 pts/2 00:00:00 db2syscdb2inst1 7512 7454 0 10:39 pts/2 00:00:00 grep db2sysc=> cat /pr转载 2013-03-04 13:39:22 · 594 阅读 · 0 评论 -
Linux进程的实际用户ID和有效用户ID
http://my.unix-center.net/~Simon_fu/?p=607本人对Unix下的进程的实际用户ID和有效用户ID一直都比较迷惑,没有完全搞清楚。最近温习APUE(《高级UNIX环境编程》),终于对这两个概念有了一个清晰的认识,看来经典著作绝对需要温习多遍,才能领略其中的奥秘。 在Unix进程中涉及多个用户ID和用户组ID,包括如下:1、转载 2013-02-24 20:06:24 · 400 阅读 · 0 评论 -
vim按键
转载 2013-02-23 18:28:05 · 387 阅读 · 0 评论 -
ln 软链接与硬链接
系统文件系统使用情况,其中 /home 文件系统当前已使用了 3.0G ,剩余105G[root@s14 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/sys-root 4.0G 2.3G 1.5G 60% //dev/cciss/c0d0p1 244M 11M 221转载 2013-03-07 17:08:04 · 666 阅读 · 0 评论 -
fd_set 用法
select()函数主要是建立在fd_set类型的基础上的。fd_set(它比较重要所以先介绍一下)是一组文件描述字(fd)的集合,它用一位来表示一个fd(下面会仔细介绍),对于fd_set类型通过下面四个宏来操作: fd_set set; FD_ZERO(&set); /* 将set清零使集合中不含任何fd*/转载 2013-03-30 21:42:49 · 662 阅读 · 0 评论 -
calloc
函数简介calloc是一个C语言函数函数名: callocvoid *calloc(unsigned n,unsigned size);功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。跟malloc的区别:calloc在动态分配完内存后,自动初始化该内存空间为零,而ma转载 2013-03-30 22:27:31 · 646 阅读 · 0 评论 -
让vim显示空格,及tab字符 vim 多行注释
1、显示 TAB 键文件中有 TAB 键的时候,你是看不见的。要把它显示出来::set list现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里。 这样做的一个缺点是在有很多 TAB 的时候看起来很丑。如果你使用一个有颜色的终端,或者使用 GUI 模式,Vim 可以用高亮显示空格和TAB。 使用 ‘listchars’ 选项:转载 2013-03-23 10:47:05 · 739 阅读 · 0 评论 -
UNIX IO---再谈文件描述符
http://keren.blog.51cto.com/720558/170822在C程序中,文件由文件指针或者文件描述符表示。ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面重点来说下,转载 2013-03-23 16:05:21 · 480 阅读 · 0 评论 -
重定向dup2的本质
http://keren.blog.51cto.com/720558/170892在前一面一篇《UNIX I/O---再谈文件描述符 》的基础上,学习一下dup2函数。先看下面的代码示例: #include #include #include #include int main(int argc,char* argv[]){ int fd; f转载 2013-03-23 16:14:05 · 650 阅读 · 0 评论 -
dup,dup2
dup() 和 dup2() 都可以用来复制一个现有的文件描述符,这两个函数声明如下:#include int dup(int oldfd);int dup2(int oldfd, int newfd);dup() 函数返回的新文件描述符一定是当前可用文件描述符中的最小值。dup2() 函数可以将第 1 个参数 oldfd 指定的文件描述符复制到第 2 个参数 newfd转载 2013-03-23 16:17:04 · 788 阅读 · 0 评论 -
cc、gcc、g++、CC的区别概括
http://blog.csdn.net/monkey_d_meng/article/details/5651608 gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc转载 2013-03-24 16:19:41 · 800 阅读 · 0 评论 -
epoll 使用
epoll使用epoll的工作原理是,你如果想进行IO操作时,先向epoll查询是否可读或可写,如果处于可读或可写状态后,epoll会通过epoll_wait函数通知你,此时你再进行进一步的recv或send操作。epoll仅仅是一个异步事件的通知机制,其本身并不作任何的IO读写操作,它只负责告诉你是不是可以读或可以写了,而具体的读写操作,还要应用层自己来作。epoll仅提供这种机制也是非转载 2013-03-25 14:16:21 · 515 阅读 · 0 评论 -
C语言函数realloc
函数简介原型:extern void *realloc(void *mem_address, unsigned int newsize);语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小,不然的话会导致数据丢失!头文件:#include stdlib.h> 有些编译器需要#include ,在TC2.0中可以使转载 2013-03-25 14:22:13 · 643 阅读 · 0 评论 -
进程通信的实例--管道(pipe)
4.7.5 进程通信的实例--管道(pipe)1.管道pipe 进程通信的使用例子之一是UNIX系统的管道通信。UNIX系统从System V 开始,提供有名管道和无名管道两种通信方式,这里介绍无名管道。无名管道为建立管道的进程及其子孙提供一条以比特流方式传送消息的通信管道。该管道再逻辑上被看作管道文件,在物理上则由文件系统的高速缓冲区构成,而很少启动外设。发送进程利用文件系统转载 2013-03-23 20:17:36 · 14246 阅读 · 2 评论 -
fopen函数
C语言函数fopen函数简介函数功能:打开一个文件函数原型:FILE * fopen(const char * path,const char * mode);相关函数:open,fclose,fopen_s[1],_wfopen所需库:stdio.h>返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把转载 2013-03-25 20:54:29 · 633 阅读 · 0 评论 -
Vim进阶技术:搜索和替换
http://blog.csdn.net/hitlion2008/article/details/7964811行内搜索行内搜索,也就是在当前行内进行搜索和移动,通常都与编辑命令一起使用。fx -- 移动到下一个字符x的位置,光标停留在x字符上面tx -- 移动到下一个字符x的位置,光标停留在x前一个字符上Fx -- 移动到前一个字符x的位置,光标停留在x字符上转载 2013-02-13 11:56:51 · 351 阅读 · 0 评论