C language
文章平均质量分 54
云雷奋发雪月空明
这个作者很懒,什么都没留下…
展开
-
bashrc
# annabel.leeexport GREP_OPTIONS='--color=auto'export GREP_COLOR='1;4;32'# export PS1="\[\e[1;33m\]$(ppwd \l)\u:\[\e[1;31m\]\w> \[\e[0m\]"# export PS1="\[\e[1;33m\]\u:\[\e[1;31m\]\w\n> \[\e[0m\]"原创 2015-04-13 10:54:26 · 580 阅读 · 0 评论 -
8.12 Functions That Control Make / makefile debug
8.12 Functions That Control MakeThese functions control the way make runs. Generally, they are used to provide information to the user of the makefile or to cause make to stop if some sort of envi转载 2014-09-30 11:01:50 · 624 阅读 · 0 评论 -
gcc remove comments
#define TRACE(FMT, ...) \/*kprintf ("c%u %s[%d]: " FMT, cpuId, __FUNCTION__, __LINE__, ##__VA_ARGS__)*//* externs */extern irqHandle_t sysIrqConnect (size_t irq, irqHandler_t func,size_t a原创 2014-10-24 11:01:46 · 1019 阅读 · 0 评论 -
elf 格式简析
elf 格式简析program headerElf file type is EXEC (Executable file)Entry point 0x308000There are 4 program headers, starting at offset 52Program Headers: Type Offset Vir原创 2014-09-17 10:58:23 · 777 阅读 · 0 评论 -
sed delete c comments
# oksed -e ":begin; { /\*\//! { $! { N; b begin }; }; s/\/\*.*\*\// /; };" 2.txt# xx line delete sed '/\/\*/{原创 2014-09-09 17:48:16 · 728 阅读 · 0 评论 -
函数调用栈以及函数调用过程 for x86
Call 指令的实现Near Call. When executing a near call, the processor pushes the value of the EIP register (which contains the offset of the instruction following the CALL instruction) on the stack (for原创 2014-08-26 10:24:12 · 664 阅读 · 0 评论 -
astyle format
find . -iname "*.[c|h]" | xargs -n1 -I "ZZZZZ" astyle --style=ansi --indent=spaces=8 --indent-switches --pad-oper --pad-header --add-brackets --break-blocks --suffix=none "ZZZZZ"原创 2014-09-09 10:36:14 · 622 阅读 · 0 评论 -
面向对象起源和使用
kernel中使用了很多oo的bian原创 2014-05-30 08:03:50 · 1401 阅读 · 0 评论 -
C语言作用域和static keyword
http://en.wikipedia.org/wiki/File_scope原创 2014-04-23 16:45:04 · 1312 阅读 · 0 评论 -
vim中文乱码的解决方法
编辑~/.vimrc文件,加上如下几行: set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 即可搞定。转载 2014-10-29 10:01:02 · 660 阅读 · 0 评论 -
phony 详解
phony 详解1: 一个目标,可以产生target文件,也可以不产生target文件echo目标就不产生echo文件不产生文件,则每次make echo。都将执行recipe。因为make总是妄图产生一个比temp更新的target--echo文件。echo: temp@echo "$(shell ls -l temp)"2:一个目标,可以原创 2014-10-29 10:35:49 · 8889 阅读 · 1 评论 -
makefile 的调试
makefile 的调试-d打印出依赖-n打印出执行的命令, 但是尽可能不执行。本质上是打印第二阶段的执行命令。-p 执行的过程中,同时打印出数据库。打印第二阶段的命令的执行效果,和第一阶段的数据库。normal command execution occurs here# Make data base, printed on原创 2015-01-27 15:44:45 · 700 阅读 · 0 评论 -
makefile解析字符串第一个第二个字符
makefile判断绝对路径。原创 2015-03-18 14:42:21 · 1995 阅读 · 0 评论 -
awk处理多个文件
awk处理文件。本质上是把一个文件原创 2014-11-07 15:57:49 · 907 阅读 · 0 评论 -
makefile子目录,call function, 多rules之间的独立shell
下面所称的 make 都假定是 GNU Make,也是所有 Linux 发行版所采用的 make 版本。本文内容主要来自从 GNU Make manual(在 Debian/Ubuntu 中,安装软件包 make-doc,然后执行命令 info make 就可以看到;对于自己编译的 make 版本,自身就带有 doc)。这里所称递归使用指从 Makefile 里再调用 make 去执行原创 2014-10-20 16:27:35 · 728 阅读 · 0 评论 -
一个有趣的makefile
all: cc@echo "1111"@make mmmm:: mma mmbmma::@echo "mmmaaa"mmb::@echo "mmmbbb"bb:@echo "bbbb"cc:@echo "ccccccc"原创 2014-11-04 14:42:20 · 759 阅读 · 0 评论 -
vim plugin
syntaxc.vimpython.vimsh.vimmake.vimlanguagepydictionbufferMiniBufExplorer原创 2014-11-20 10:04:40 · 562 阅读 · 0 评论 -
eval 用法
dell:~/tmp> cat file.txt v1 aav2 bbv3 ccv4 ddv5 eev6 ffdell:~/tmp> cat eval.sh #!/bin/bashwhile read name valuedo eval "${name}=${value}"done echo "v1 = ${v1}"echo原创 2014-10-30 15:47:03 · 793 阅读 · 0 评论 -
bat script
bat script1: bat 的函数本质不是一个函数,本质是一个标签call :funcaa:funcaaecho 5555exit /b 33执行结果是555555552: goto and exit无论是 goto :eof还是 exit /b x原创 2014-10-31 17:23:34 · 774 阅读 · 0 评论 -
Wine Font FontSmoothing
Wine "FontSmoothing"="2""FontSmoothingType"=dword:00000002"FontSmoothingGamma"=dword:00000578"FontSmoothingOrientation"=dword:0000000原创 2014-04-09 14:33:02 · 1106 阅读 · 0 评论 -
driver links
http://blog.csdn.net/gdt_a20/article/category/822167转载 2014-02-28 17:21:28 · 508 阅读 · 0 评论 -
代码阅读
1: 按照些代码的思路去阅读代码具体说来,写代码是增量式,也就是说,先完成基本框架,再逐步改进添加。阅读的时候,也要抓住这个思想。而不是,一步追求阅读懂全部细节。2:比如一个结构体不可能一下子看懂他的所有字段的意思,刚开始看懂最主要的字段的意义,把主要的流程走通,就行了。一些新的字段,往往是后来为了增加新的功能,逐渐添加进去的。不可能一下子全部看懂。比如对比Linux kern原创 2014-01-21 09:45:34 · 608 阅读 · 0 评论 -
linux syscall procedure
1:trap_init traps.c (F:\linux-2.6.32\arch\x86\kernel) set_system_trap_gate(SYSCALL_VECTOR, &system_call);2:entry_32.S (F:\linux-2.6.32\arch\x86\kernel) ENTRY(system_call)S原创 2013-08-28 15:34:20 · 931 阅读 · 0 评论 -
Fully buffered & Line buffered & Unbuffered
Define1. Fully buffered means that I/O takes place only when the buffer is fully, the process explicitly calls fflush, or the process terminates by calling exit. A common size for the standard原创 2013-08-15 14:16:50 · 965 阅读 · 0 评论 -
wait && child process && fork
为何要fork()两次来避免产生僵尸进程? 当我们只fork()一次后,存在父进程和子进程。这时有两种方法来避免产生僵尸进程:父进程调用waitpid()等函数来接收子进程退出状态。父进程先结束,子进程则自动托管到Init进程(pid = 1)。 目前先考虑子进程先于父进程结束的情况: 若父进程未处理子进程退出状态,在父进程退出前转载 2013-08-26 10:59:33 · 1005 阅读 · 0 评论 -
pthread theory and usage
why pthread开销内存共享于同步调度和协同合作CPU与I/O的重叠协作:例如,一个程序可能分多段对I/O进行长操作,当一个线程正在等待一个I/O系统调用完成时,CPU可以用其它线程进行现有的密集工作;优先级/实时调度:可预定更重要的任务取代或者中断低优先级的任务;异步事件处理:一些不确定次数和持续时间的服务事件是交叉执行的任务。例如,Web服务器可以在应答前原创 2013-08-21 17:28:26 · 875 阅读 · 0 评论 -
LKA linux kernel architechture
一本好书就是一个好老师,好师傅,好朋友。LKA就是一本这样的书。1: OS概念,层次2:怎么阅读代码,抓住重点3:翻译,英文学习原创 2013-08-09 16:26:27 · 778 阅读 · 0 评论 -
C语言函数调用
1: 指令call instructiontempEIP <-- EIP + DEST; (* DEST is rel32 *)IF tempEIP is not within code segment limit THEN #GP(0); FI;IF stack not large enough for a 4-byte return addressTHEN #SS(0);原创 2013-07-29 16:29:07 · 797 阅读 · 0 评论 -
void
http://denniskubes.com/2013/03/22/basics-of-function-pointers-in-c/If you have a prototype “void something();” (with no ‘void’ in the argument list) then this function takes an undetermined转载 2013-08-03 07:17:42 · 527 阅读 · 0 评论 -
C 日积月累
what is the purpose of __ASSEMBLY__?It is useful when assembly codes and C codes share the header files.Assembler can preprocess #define macros but does not recognize most ofC syntaxes such as转载 2013-07-13 17:16:22 · 737 阅读 · 0 评论 -
宏扩展和参数扫描
本文详细讲解了宏扩展和参数扫描的流程,来源全部参考GCC官方文档。例子三为原创。如果理解了这三个例子。就能完全理解宏扩展。原创 2013-07-17 13:47:12 · 1398 阅读 · 0 评论 -
malloc
malloc实现原理http://blog.csdn.net/vincent_smz/article/details/6338417http://blog.csdn.net/haoel/article/details/6338025原创 2013-08-28 17:07:04 · 897 阅读 · 0 评论 -
Understanding fast float/integer conversions
Understanding fast float/integer conversionshttp://lolengine.net/blog/2011/3/20/understanding-fast-float-integer-conversions转载 2013-12-22 18:53:05 · 781 阅读 · 0 评论 -
gcc 链接库的顺序问题
今天碰到一个gcc链接数学库函数找不到的问题。解决办法 -lm放在最后 。 GCC在链接过程中,对参数中的库的顺序是有要求的,参数右侧的库会先于左侧的库加载,也就是说参数的解析是从右往左的。 假设库B依赖与库A,则链接的时候要写为: gcc -o bin -lB -lA 如果写为: gcc -o bin -lA -lB原创 2013-12-09 16:38:25 · 8015 阅读 · 0 评论 -
矩阵相乘nxn block的计算过程
/* Create macros so that the matrices are stored in column-major order */#define A(i,j) a[ (j)*lda + (i) ]#define B(i,j) b[ (j)*ldb + (i) ]#define C(i,j) c[ (j)*ldc + (i) ]/* Routine for computi原创 2013-11-25 19:15:03 · 1315 阅读 · 0 评论 -
blas -- wa wa wa
http://math-atlas.sourceforge.net/http://www.netlib.org/blas/ how-to-write-fast-code_100lawn147.ps原创 2013-11-12 22:13:37 · 968 阅读 · 0 评论 -
代码抽象
抽象是代码设计的根本三原则一、DRY原则DRY是 Don't repeat yourself 的缩写,意思是"不要重复自己"。如果抽象起来很容易,最好第一次就把它抽象设计了。二、YAGNI原则YAGNI是 You aren't gonna need it 的缩写,意思是"你不会需要它"。这是"极限编程"提倡的原则,原创 2013-10-15 16:18:38 · 1372 阅读 · 0 评论 -
array and pointer
1: const char ** and char **const char ** ==> const char * char ** ==> char *2: arrayint a[10]a as a right valueb = a == > char ((char *)a) length = 1b = &a ==> len原创 2013-09-21 09:50:42 · 1048 阅读 · 0 评论 -
C语言中各种数据类型的长度 sizeof char, short, int, long, long long
sizeof char, short, int, long, long long原创 2013-07-13 19:02:44 · 12733 阅读 · 0 评论 -
C语言编程规范
From:http://www.libvirt.org/hacking.htmlVery Great !.Code indentationLibvirt's C source code generally adheres to some basic code-formatting conventions. The existing code ba转载 2013-08-22 13:29:33 · 1203 阅读 · 0 评论