会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
helloweworld
博客园
首页
新随笔
管理
上一页
1
···
32
33
34
35
36
37
38
39
40
···
48
下一页
2012年11月20日
段错误,SIGSEGV
摘要: 在调试程序时出现端错误,gdb提示“Program received signal SIGSEGV, Segmentation fault” SIGSEGV 该信号指示进程进行了一次无效内存引用。 SEGV表示段违例(segmentation violation)。
阅读全文
posted @ 2012-11-20 14:51 helloweworld
阅读(417)
评论(0)
推荐(0)
2012年11月17日
pthread_create创建线程
摘要: #include <stdio.h>#include <pthread.h>void *pthread_fun(void *arg){ while (1) { sleep(1); printf("pthread running\n"); } return((void *)0);}int main(){ pthread_t tid; pthread_create(&tid, NULL, p...
阅读全文
posted @ 2012-11-17 14:34 helloweworld
阅读(296)
评论(0)
推荐(0)
gcc编译多线程
摘要: gcc test.c -lpthread
阅读全文
posted @ 2012-11-17 14:23 helloweworld
阅读(1852)
评论(0)
推荐(0)
2012年11月16日
fork父子进程 信号处理
摘要: 终端执行一个进程,该进程创建一个子进程,当Ctrl+c后,父子进程都退出,因为,父子进程捕捉到退出信号的默认动作就是结束进程。 如果,在子进程中捕捉退出信号,动作改为忽略,则ctrl+c后,父进程退出,子进程不会退出,子进程被进程ID为1的init进程领养。 代码如下: #include <stdio.h>#include <signal.h>int main(){ if (fork() ==...
阅读全文
posted @ 2012-11-16 17:22 helloweworld
阅读(526)
评论(0)
推荐(0)
2012年11月15日
volatile类型
摘要: http://www.cnblogs.com/chio/archive/2007/11/24/970632.html volatile char a; a=0; while(!a){ //do some things; } do_other(); 如果没有 volatile, do_other()不会被执行。 volatile极易改变的意思。 表示用volatile定义的变量会在程序外被改变,每次都必须从内存中读取,而不能把他放在cache或寄存器中重复使用。 在中断程序中经常会用到。
阅读全文
posted @ 2012-11-15 22:31 helloweworld
阅读(196)
评论(0)
推荐(0)
getpriority setpriority
摘要: 头文件:#include <sys/time.h>#include <sys/resource.h>原型:int getpriority(int which, int who);int setpriority(int which, int who, int prio);参数:which为PRIO_PROCESS,则who指定进程ID;which为PRIO_PGRP,则who指定进程组ID;which为PRIO_USER,则who指定用户ID.who为0,代表调用该函数的当前进程ID,进程组ID或用户ID.prio -20---19,一般默认为0,pri越小,优先级越高,
阅读全文
posted @ 2012-11-15 21:53 helloweworld
阅读(396)
评论(0)
推荐(0)
TCP Nagle算法
摘要: TCP有个套接字选项TCP_NODELAY设置这个选项可以禁止Nagle算法。 解决的问题: 小包问题,如从键盘输入的一个字符,占用一个字节,可能在传输上造成41字节的包,其中包括1字节的有用信息和40字节的标题数据,这种情况转变成了4000%的消耗。 Nagle算法要求,一个TCP连接上最多只能有一个未被确认的未完成的小分组。
阅读全文
posted @ 2012-11-15 21:12 helloweworld
阅读(190)
评论(0)
推荐(0)
inline内联函数
摘要: 为什么要有内联函数,即内联函数的作用内联函数是为了避免调用函数的开销。内联函数不是在调用时发生转移,而是在编译时将函数体嵌入到每个内联函数调用处。类似于宏定义,如宏定义:#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))但是宏定义并不能进行参数有效性的检查等。所以,可以这么理解,内联函数是宏定义的扩展,消除了宏定义不能进行参数有效性检查等缺点。或者这么理解,编译时,内联函数在调用处展开,以目标代码的增加为代价换取时间上的节省。什么时候用内联函数
阅读全文
posted @ 2012-11-15 17:27 helloweworld
阅读(151)
评论(0)
推荐(0)
2012年11月13日
Unix守护进程的创建示例
摘要: 《Unix环境高级编程》初始化一个守护进程的调用,cmd可为守护进程名。void daemonize(const char *cmd){ int i, fd0, fd1, fd2; pid_t pid; struct rlimit r1; struct sigaction sa; /* 设置文件模式创建屏蔽字为0,因为继承得来的文件模式创建屏蔽字可能会拒绝设置某些权限。 */ umask(0); /* 获取最大文件描述符。 */ if (getrlimit(RLIMIT_NOFILE, &r1) < 0) { err_sys("%s...
阅读全文
posted @ 2012-11-13 23:25 helloweworld
阅读(233)
评论(0)
推荐(0)
信号——产生信号的条件
摘要: 1、用户按某些终端键时,引发终端产生的信号。如在终端按Ctrl+c将产生中断信号SIGINT. 2、硬件产生信号,如除数为0,无效的内存引用等。这些条件通常由硬件检测到传给内核,然后内核通知进程。 3、进程调用kill函数可将信号发送给另一个进程或进程组。 4、用户可用kill命令将信号发送给其他进程。 5、当检测到某种软件条件发生时,也可能产生信号。如在网络连接上传来带外数据时产生SIGURG.
阅读全文
posted @ 2012-11-13 10:59 helloweworld
阅读(220)
评论(0)
推荐(0)
上一页
1
···
32
33
34
35
36
37
38
39
40
···
48
下一页