
misc
文章平均质量分 70
shuimuyq
这个作者很懒,什么都没留下…
展开
-
指针之char** 与 char[][]的区别
char ** 和 char *[]是等价的char **x / char *x[] , 典型的例子是main函数的第二个参数可以写成char **argv, 也可以写成char *argv[]表示x是一个存储指针的数组,这个数组每个元素都是指针,在32系统上一个指针长度为4字节那么x[0] 和 x[1]之间相差4个字节x数组内存分布如下x[0], x[1], x[2], x[原创 2015-11-12 11:32:19 · 527 阅读 · 0 评论 -
修改内核代码-打补丁-checkpatch.pl
我们下载一份内核源码,修改了一些代码,需要制作补丁,用diff命令比如现在有两份内核源码 kernel-old, kernel-new打补丁,命令为diff -ruN kernel-old kernel-new > diff.patch可以通过Kompare,或者直接用gedit打开查看修改的代码接着要查看我们修改的代码是否符合内核编码规范就需要用到原创 2015-11-25 15:30:57 · 5064 阅读 · 0 评论 -
应用程序运行时的虚拟内存布局 - 进程 - 线程
每一个进程都是类似上图的内存分布当进程fork一个子进程的时候, 子进程拷贝父进程当前的内存空间, 包括环境变量, 栈空间, 堆空间, 代码段, 数据段等等所以在子进程调用exec类函数之前, 所有都是和父进程一样的所有线程共享所属进程的环境变量和栈空间原创 2016-04-08 16:47:16 · 494 阅读 · 0 评论 -
My Biggest Regret As A Programmer
A little over 20 years ago I was at a crossroads. My second company was petering out when our 5 years of building Deltagraph for the publisher ended (they wanted to move into the nascent internet spac转载 2016-04-15 16:16:40 · 560 阅读 · 0 评论 -
生产者-消费者-信号量-共享内存-循环队列
代码转自别处,稍有修改,主要是宏定义,我觉得不够直观的地方给改了,逻辑没变用信号量来控制队列#include #include #include #include #include #include #include #define转载 2016-04-20 14:48:23 · 1411 阅读 · 0 评论 -
这只猩猩很难控制 - Two star programming
Two star programming2013-01-08 • C, Torvalds,Algorithms •46 CommentsA few weeks ago Linus Torvalds answered some questions on slashdot. All his responses make good reading but one in par转载 2016-03-23 16:42:23 · 652 阅读 · 0 评论 -
使用gprof 或 valgrind查看函数调用频率及程序性能瓶颈调试
利用 gprof2dot 和graphviz 图形化定位linux c/c++系统性能瓶颈1 下载http://code.google.com/p/jrfonseca/wiki/Gprof2Dot 下载gprof2dot.pyhttp://www.graphviz.org/Download_source.php 下载graphviz-2.18.tar.gz原创 2016-01-15 14:15:09 · 1543 阅读 · 0 评论 -
内核文件打开读写操作代码
#include #include #include #include #include #include MODULE_LICENSE("Dual BSD/GPL");static int doreadfile(void){ struct file *filp; mm_segment_t fs; loff_t pos = 0; struct inode *inode;原创 2016-01-11 16:22:12 · 397 阅读 · 0 评论 -
C简短代码集合
自己写的,或者看到别人写的,有趣的简短代码集合检测大小端#include int main(int argc, char *argv[]){ return printf("%s Endian\n", *(short *)"\x12\x34" == 0x1234 ? "Big" : "Little");}一个单链表,不知道长度,写一个函数快速找到中间节点位原创 2015-12-30 16:18:13 · 451 阅读 · 0 评论 -
线程池的实现(c语言)
/** threadpool.h */#include struct job { void *(*callback_function)(void *arg); //线程回调函数 void *arg; //回调函数参数 struct job *next;};struct threadpool;/* * threadpool_init * @thread_num:转载 2016-01-15 16:40:50 · 837 阅读 · 0 评论 -
命令 与 bash shell脚本
有些脚本也是来自网络,这里就不一一注明了1: 编码转换脚本首先可以用file命令查看当前乱码文本的编码,再执行脚本转换#!/bin/bash if [ "$#" != "2" ]; then echo "Usage: `basename $0` dir filter" exitfidir=$1filter=$2echo $1for file in `fi原创 2015-12-30 16:06:03 · 301 阅读 · 0 评论