- 博客(13)
- 收藏
- 关注
原创 线程
多线程编程须借用第三方库:NPTL线程库 Native POSIX Thread Library(NPTL) 线程间同步和互斥机制 信号量: #include #include #include sem_t sem; int parked; void park(){ while(1){ sem_wait(&sem); parked++; prin
2013-01-06 18:54:42
182
原创 守护进程
LINUX系统中的进程类型: 1.交互进程,该类进程是由Shell控制和运行的,交互进程既可以在前台运行,也可以在后台运行。 2.批处理进程:该类进程不属于某个终端,它被提交到一个队列中以便顺序执行。 3.守护进程:该类进程在后台运行,它一般在Linux启动时开始执行,系统关闭时结束。 进程结构体为task_struct 创建守护进程步骤: 1.创建子进程,父进程退出。 2.在子进程
2013-01-06 18:39:18
255
转载 ubuntu apt
编辑/etc/apt/sources.list文件,把里面的默认的都用#号注释掉(或全删掉)然后添加以下几行: ##163 deb http://mirrors.163.com/ubuntu/ maverick main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ maverick-security
2013-01-05 18:18:06
255
原创 标准I/O库
问题:下面程序的输出是什么?(intel笔试2011) int main(){ fprintf(stdout,"Hello "); fprintf(stderr,"World!"); return0; } 答案:World!Hello stdout是行缓冲的,他的输出会放在一个buffer里面,只有碰到换行的时候,才会输出到屏幕。而stderr是无缓冲的,会直接输出
2013-01-04 23:15:38
197
原创 static
试验: (1)第一个作用:隐藏。为什么在a.c中定义的全局变量a和函数msg能在main.c中使用?所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问。此例中,a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的。如果加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,main.c
2012-12-28 23:45:55
197
原创 静态库和动态库
Linux下的库有两种:动态库和静态库,二者的不同点在于代码被载入的时刻不同. 静态库对函数库的链接是放在编绎时期完成的(compile time). 动态库把对一些库函数的链接推迟到程序运行的时期(run time). 创建静态库(libXXX.a): 建立 printHello.c printHello.h 文件 ubuntu@ubuntu-virtual-machine:~/un
2012-12-28 15:00:40
235
转载 const 指针与指向const的指针
当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; 第一种可以理解为,p
2012-12-26 12:31:35
160
原创 ubuntu C开发环境搭建
1.下载ubuntu,更新APT sudo apt-get update 2.安装SSH服务,打字法 sudo apt-get install openssh-server sudo apt-get install fcitx 3.安装VIM sudo apt-get install vim 安装CTAGS sudo apt-get install exuberant-ctags
2012-12-25 21:33:19
242
原创 C常见问题
|: 有1就为1(1|1,1|0) 其它情况为0(0|0) &: 1&1为1 其它情况为0(1&0,0&1) void main() { char a[10]={0,1,2,3}; char *p = a; printf("%d\n",*p+1); printf("%s\n","hsdf"+1); } 打印出sdf,可见"hsdf"表示的是指向h的指针
2012-12-24 23:33:51
149
原创 Segmentation fault core dump调试
$ ulimit -c 如果结果不是unlimited,说明 core dump没有开启,设置开启: 在文件最后面加上: ulimit -c unlimited 先使用gcc -g 使生成可调试文件,再用 gdb ./a.out core 调试,可用where 找出发生段错误行
2012-12-24 17:43:07
620
原创 VIM使用
Vim常用命令 1切换插入模式: 命令模式下 a (小写)光标之后进行插入 A (大写)光标所在行尾进行插入 i (小写)光标前开始进行插入 I
2012-12-20 08:33:55
207
原创 VIM个性定制
~/.vimrc 文件: =============================================================== set nu "can select tags when using vim *.c -p set mouse=a "改键 imap set cursorline hi CursorLine cterm
2012-12-20 08:31:59
292
原创 原码,反码,补码
void fun() { unsigned int a = 2013; int b = -2; int c = 0; while (a + b > 0) { a = a + b; c++; } printf("%d", c); } 问打印出什
2012-12-18 19:50:49
303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人