上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 23 下一页
  2013年7月8日
摘要: #include int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg);返回值若成功则返回0,否则返回出错编参数第一个参数为指向线程标识符的指针。第二个参数用来设置线程属性。 一般NULL第三个参数是线程运行函数的起始地址。最后一个参数是运行函数的参数 。一般NULL 阅读全文
posted @ 2013-07-08 13:28 hrbust_09zhangyabin 阅读(333) 评论(0) 推荐(0) 编辑
摘要: #include#includevoid *print_thread_id(void *arg){ /* 打印当前线程的线程号*/ printf("Current thread id is %u\n", (unsigned)pthread_self());}int main(int argc, char *argv[]){ pthread_t thread; /*保存线程号*/ /*创建一个线程 */ pthread_create(&thread, NULL, print_thread_id, NULL); sleep(1); /*休眠1s*/ /*打印进程号 */ 阅读全文
posted @ 2013-07-08 13:13 hrbust_09zhangyabin 阅读(197) 评论(0) 推荐(0) 编辑
摘要: pthread_mutex_init是对锁进行初始化,一个参数是锁结构体,一个是属性,属性基本为NULL就行。pthread_mutex_lock用来加锁,加锁后,别的线程运行到这个地方就不能继续运行了,等待解锁。pthread_mutex_unlock用来解锁。pthread_mutex_destroy用来销毁锁。 阅读全文
posted @ 2013-07-08 11:18 hrbust_09zhangyabin 阅读(209) 评论(0) 推荐(0) 编辑
  2013年7月7日
摘要: 今天试着敲了一下APUE的小例子,遇到了个错误 ----- undefined reference to `pthread_create。(为自己这么晚接触多线程惭愧)。上网上查了一下,借人经验。问题原因:pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。问题解决: 在编译中要加 -lpthread参数 gcc 6.c -o 6 -lpthread 6.c为你些的源文件,不要忘了加上头文件#include 阅读全文
posted @ 2013-07-07 19:33 hrbust_09zhangyabin 阅读(283) 评论(0) 推荐(0) 编辑
  2013年7月6日
摘要: 1 #include 2 #include 3 4 #define m 6 5 int main() 6 { 7 int pipefd[2]; 8 int pid; 9 int m1;10 11 if(pipe(pipefd)0) //parent18 {19 m1=m;20 close(pipefd[0]); //close read end21 write(pipefd[1],&m1,sizeof(int)); //read m122 wait(NULL); // wait for child complete23 close(pipefd[1]);24 }25 else if(p 阅读全文
posted @ 2013-07-06 23:21 hrbust_09zhangyabin 阅读(264) 评论(0) 推荐(0) 编辑
  2013年6月4日
摘要: http://blog.csdn.net/feiniao1221/article/details/7000868这篇很好,感谢博主。仅做学习。 阅读全文
posted @ 2013-06-04 19:46 hrbust_09zhangyabin 阅读(182) 评论(0) 推荐(0) 编辑
  2013年6月3日
摘要: #include"stdio.h"当要调用某个函数时先在用户自已编写的文件中查找,如果找不到再到库文件里去找,而#include<stdio.h> 是直接到库文件里去找所以如果是调用自己写的函数的话就用#include"stdio.h",这种形式而调用标准库函数的话就用#include<stdio.h>这种形式,可以提高速度 阅读全文
posted @ 2013-06-03 10:43 hrbust_09zhangyabin 阅读(100) 评论(0) 推荐(0) 编辑
  2013年5月17日
摘要: 1,. 在适当的时候要会自我定义数据类型. 我们都知道linux C开发中的常见扩展数据类型的定义有:uint8_t, uint16_t, uint32_t, uint64_t, size_t, ssize_t, off_t .... 他之所以要自己定义出数据类型是有道理的, 如: typdef unsigned int uint32_t; 表示uint32_t为32位无符号类型数据, 其实size_t也是32位无符号数据类型, 为什么不直接写"unsigned int"呢? 为了程序的可扩展性, 假如将来我们需要的数据大小变成了64bit时,我们只需要将typedef l 阅读全文
posted @ 2013-05-17 07:06 hrbust_09zhangyabin 阅读(120) 评论(0) 推荐(0) 编辑
  2013年5月4日
摘要: 社会就是另一所大学,教会我更多。1,时刻学习。学会的才是自己的。工作要做,但不能卖命,再忙也要挤出时间为自己学习。2,锻炼身体。还是那样,身体更是自己的。工作再忙也要为自己锻炼身体。3,养成良好的生活习惯。 比如说,不暴饮暴食,爱惜身体。 每天阅读几页文学类书籍。如《文化苦旅》。尽量每天保证8个小时的休息时间。 阅读全文
posted @ 2013-05-04 08:42 hrbust_09zhangyabin 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用。01. 变得有耐心02. 保持健康03. 拥抱变化带来的不适应04. 学习一门新的编程语言05. 自动化06. 学习更多数学知识07. 关注安全08. 备份你的数据09. 学习更多理论知识10. 接触艺术和人文11. 向新的软件学习12. 完成一个自己的项目接下来我会对这些建议逐个介绍。变得有耐心程序员们会担心锻炼耐心付出的努力得不到应有的回报。其实,培养耐心只要付出很小的投入就能够得到相对而言很大的收获。下面是开始锻炼耐心可以尝试的一 阅读全文
posted @ 2013-05-04 08:32 hrbust_09zhangyabin 阅读(608) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 23 下一页