读书笔记
文章平均质量分 69
echoes_of_rainbow
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux进程通信--信号量
Semaphores 信号量主要用于进程对共享资源的互斥访问。为了取得对一个共享资源,进程测试信号量的值,如果为正,表示还有资源可以访问,该进程对信号量加减一。如果为0表示没有资源可以用,该进程应当休眠等待信号量的值再次为正。Linux中的信号量使用起来是比较麻烦的。在这里,信号量是以集合形式存在的,创建时要给出信号量的数目,并且信号量集合即使没有任何进程访问时,也是存在于系统中的。要注意对其的销毁工作。每个信号量由以下结构体定义:struct {unsigned short semval; //信号量的原创 2010-07-29 15:43:00 · 892 阅读 · 0 评论 -
基础网络知识
OSI模型: 应用层、表示层、会话层,传输层,网络层,数据链路层,物理层。TCP/IP协议模型: 应用层(SMTP、FTP、DNS)、传输层(TCP/UDP)、网络层(IP、ICMP)、网络接口层ping是应用层直接使用网络层ICMP报文。这种询问报文用来测试目的站是否可原创 2011-10-07 12:05:43 · 361 阅读 · 0 评论 -
select与epoll,多路IO复用
当一个节点建立了与多个节点之间的连接时,如何去高效的处理多个连接的数据呢?可能有的连接有数据,有的连接没有数据,这中情况下,我们总不能一个个的去recv尝试吧? linux下面给我们提供了select和epoll两组接口以处理这种情况。1 select:原创 2011-09-24 22:04:15 · 1054 阅读 · 0 评论 -
linux下的线程
1 什么是线程: 线程包含了进程内执行环境的必需信息:进程中标识线程的线程ID、一组寄存器、栈、调度优先级和策略、信号屏蔽字、errno遍历以及线程私有数据。进程中的所有信息对线程都是共享的,包括可执行程序的文本,程序的全局变量和堆内存、栈以及文件描述符。linux线原创 2011-09-08 20:06:30 · 437 阅读 · 0 评论 -
大端小端网络字节顺序
源自格列佛游记,小人国因为从鸡蛋的大端(Big-endian)还是鸡蛋的小端(Little-endian)敲开而发生战争。大端是 最高有效位(MSB) 位于地址的低位,小端则是MSB位于地址的高位。假如16进制的数0x12345678(我们在写一个数的时候,高位总是在最左边)===内存从低到高===>大端:12345678小端:78563412IP协议中规定网络协议以大端为准。x86系列CPU都是原创 2011-07-02 17:06:56 · 474 阅读 · 0 评论 -
vim 配置文件
" 不要使用vi的键盘模式,而是vim自己的set nocompatible" 显示行号set nu " 为C程序提供自动缩进set smartindent" 语法高亮set syntax=on" 去掉输入错误的提示声音set noeb" 在处理未保存或只读文件的时候,弹出确认"set confirm" 自动缩进set autoindentset cindent" Tab键的宽度set tabstop=4" 统一缩进为4set softtabstop=4set shiftwidth=4" 不要用空格代替制表转载 2011-03-10 09:46:00 · 400 阅读 · 0 评论 -
c++ map
<br />map set中使用自定义的类型时,需要实现比较操作。注意不能定义为类内部的比较符,因为stl中定义的是要传递两个对象。<br />比如我们有如下定义:<br />#include <map><br />using namespace std;<br /><br /><br />struct T{<br /> T(){}<br /> int a;<br /> int b;<br /> inline bool operator < (const T原创 2011-03-02 13:13:00 · 465 阅读 · 0 评论 -
c++对象模型 内存布局
<br />比如一个类:<br />class T<br />{<br />public:<br /> void Func();<br /> virtual void Func2();<br />private:<br /> int a;<br /> int b;<br />};<br /> <br />sizeof(T)的大小,如果没有虚函数,那么只有数据成员存储在数据段,那么其大小就相当于struct T{int a; int b;};的大小。如果没有任何数据成员,sizeof会返回原创 2010-08-23 12:31:00 · 315 阅读 · 0 评论 -
Linux 命令行参数解析
<br />1 getopt<br />#include <unistd.h><br /> int getopt(int argc, char * const argv[], const char *optstring);<br />extern char *optarg;<br />extern int optind, opterr, optopt;<br /> <br />argc argv是main函数的参数,optstring定义了命令行的使用方法。<br />比如你想这样使用一个命令:<br原创 2010-08-05 20:25:00 · 676 阅读 · 0 评论 -
Linux计时器
Linux中用户态可以使用的计时器主要有alarm和timer.timer可以提供更加精确的时间,alarm只能精确到秒。#include int getitimer(int which, struct itimerval *curr_value);int setitimer(int which, const struct itimerval *new_value,struct itimerval *old_value);struct itimerval { struct t原创 2010-08-02 11:21:00 · 4232 阅读 · 1 评论 -
Linux信号的使用
信号是软件中断,信号提供了一种处理异步事件的方法。1 signal函数#include void (* signal(int signo, void (*func)(int) ) ) (int);通过typedef 可以使得该函数的形式比较简单。typedef void sigfunc(int);sigfunc *signal(int signo, sigfunc *func);该函数使得当进程收到指定的信号时调用对应的函数。func的值为SIG_IGN(忽略),SIG_DFL(默认),或者对应的函数地址原创 2010-07-29 19:57:00 · 2244 阅读 · 0 评论 -
Linux进程通信方法--管道
进程通信的基本方法:管道原创 2010-07-28 16:30:00 · 336 阅读 · 0 评论 -
linux文件的权限
每个文件都有9个权限位:用户的读取执行权限,组的读写执行权限,其他的读写执行权限,分别对应9位。三位一组,8进制数。目录: 当要访问一个目录下的文件时,需要有该目录的可执行权限。目录的可执行权限位也成为搜索位。对目录的读权限意味着在读取该目录下所有文件的列表。对目录的原创 2011-10-07 19:19:08 · 331 阅读 · 0 评论
分享