- 博客(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
190
原创 守护进程
LINUX系统中的进程类型:1.交互进程,该类进程是由Shell控制和运行的,交互进程既可以在前台运行,也可以在后台运行。2.批处理进程:该类进程不属于某个终端,它被提交到一个队列中以便顺序执行。3.守护进程:该类进程在后台运行,它一般在Linux启动时开始执行,系统关闭时结束。进程结构体为task_struct创建守护进程步骤:1.创建子进程,父进程退出。2.在子进程
2013-01-06 18:39:18
263
转载 ubuntu apt
编辑/etc/apt/sources.list文件,把里面的默认的都用#号注释掉(或全删掉)然后添加以下几行:##163deb http://mirrors.163.com/ubuntu/maverick main restricted universe multiversedeb http://mirrors.163.com/ubuntu/maverick-security
2013-01-05 18:18:06
263
原创 标准I/O库
问题:下面程序的输出是什么?(intel笔试2011)int main(){fprintf(stdout,"Hello ");fprintf(stderr,"World!");return0;}答案:World!Hello stdout是行缓冲的,他的输出会放在一个buffer里面,只有碰到换行的时候,才会输出到屏幕。而stderr是无缓冲的,会直接输出
2013-01-04 23:15:38
204
原创 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
203
原创 静态库和动态库
Linux下的库有两种:动态库和静态库,二者的不同点在于代码被载入的时刻不同.静态库对函数库的链接是放在编绎时期完成的(compile time).动态库把对一些库函数的链接推迟到程序运行的时期(run time).创建静态库(libXXX.a):建立 printHello.c printHello.h 文件ubuntu@ubuntu-virtual-machine:~/un
2012-12-28 15:00:40
240
转载 const 指针与指向const的指针
当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; 第一种可以理解为,p
2012-12-26 12:31:35
171
原创 ubuntu C开发环境搭建
1.下载ubuntu,更新APTsudo apt-get update2.安装SSH服务,打字法sudo apt-get install openssh-serversudo apt-get install fcitx3.安装VIMsudo apt-get install vim安装CTAGSsudo apt-get install exuberant-ctags
2012-12-25 21:33:19
250
原创 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
158
原创 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
631
原创 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
301
原创 原码,反码,补码
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
317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人