C/C++ Learning

nginx之进程绑定(亲和力设置)

linux接口原型 #include <sched.h> 获取设置亲和 int sched_setaffinity(pid_t pid, size_t cpusetsize,cpu_set_t *mask); int sched_getaffinity(pid_t pid, size_t cpusetsize,cpu_set_t *mask); ...阅读全文

exvim完整版使用手册(linux版本)

1、在工程目录下创建工程文件touch project.exvim project为工程名称,可任意起,支持多个不同的工程配置 一个项目中可以拥有多个 .exvim 文件,允许你在一个项目中运用不同的配置;2、编译工程vim project.exvim打开工程文件进入vim命令模式输入Update命令更新工程配置:Update初始时候ex-project窗口为空,将鼠标定位到ex-proje...阅读全文

nginx之守护进程创建

1、源码分析(daemon.c)ngx_int_t ngx_daemon(ngx_log_t *log) { int fd; //用fork创建守护进程 switch (fork()) { //fork返回-1创建失败 case -1: ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "fork() fa...阅读全文

gdb中X命令

examine命令(简写是x)来查看内存地址中的值。语法如下: x/<n/f/u> <addr> n、f、u是可选的参数。n是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果 地址是指令地址,那么格式可以是i。u 表示从当前地址往后请求的字节数,如果不指定的话,GDB...阅读全文

C代码求有符号数的最值

1、求int的最值int max_int = (int)((unsigned int)~0>>1); int min_int = -(int)((unsigned int)~0>>1)-1; 2、求unsigned int最值unsigned int max_uint = ((unsigned int)~0); unsigned int max_uint = (int...阅读全文

vim-vimtutor总结

光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。h (左移) j (下行) k (上行) l (右移)欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>欲退出 Vim 编辑器,请输入 <ESC> :q! <回车> 放弃所有改动。 或者输入 <ESC&g...阅读全文

GNU C之内存对齐

四种改变编译器默认对齐方式的方法:(1)使用伪指令#pragma pack (n),C编译器将按照n个字节对齐。(2) 使用伪指令#pragma pack (),取消自定义字节对齐方式。(3)__attribute((aligned (n))),让所作用的结构成员对齐在n字节自然边界上。如果结构中有成员的长度大于n,则按照最大成员的长度来对齐。(4)__attribute__ ((packe...阅读全文

编程常走的10个弯路

面向编译器写代码,而不是面向用户当人们使用编译器创建自己的 app 时,在把自己的想法诉诸于机器代码的过程中,常常会将那些可以使得编程更为简单却又冗长的语法遗忘于脑后。无论你使用的是单字母的标识符还是更易于人脑理解的标识符,对于编译器而言,毫无区别。编译器不在乎你写的是否是优化表达式,也不在乎你是否用括号封装了子表达式。编译器要做的就是将这些人脑可读的代码,解析为抽象的语法树,并将这些树转换...阅读全文

C复杂函数声明

右左法则:首先从最里面的未定义的标识符看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。1、实例int (*func)(int *p);首先找到那个未定义的标识符,就是func,它的外面有一对圆括号,而且左边是一个号,这说明func是一个指针,然后跳出这个圆括号,先看右边,也是一个圆括号,这说明(...阅读全文

常见字符串处理库函数实现

1.strchr2.strstr3.strcat4.strcpy5.strncpy6.strcmp7.strncmp8.atol9.atoisize_t类型 typedef unsigned int size_t; <h3 id="1">1、strchr</h3> /*** *char *strchr(string, c) - se...阅读全文