- 博客(16)
- 收藏
- 关注
原创 进程间通信方式有哪些?以及在什么情况下用什么通信方式?以及各自优缺点
1.管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。2.有名管道(named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。3.信号量(semophore) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,
2016-12-29 23:01:18 3410
原创 为什么要使用线程?与进程相比有哪些好处
1、和进程相比,它是一种非常"节俭"的多任务操作方式。在linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。 2、运行于一个进程中的多个线程,它们之间使用相同的地址空间,而且线程间彼此切换所需时间也远远小于进程间切换所需要的时间。据统计,一个进程的开销大约是一个线程开销的30倍左右。 3、
2016-12-27 23:20:09 2066
原创 生产者与消费者模型(线程)
#include #include #include #include #include #include #define QUEUE_SIZE 100#define OK 0 #define ERROR -1 typedef int DataType;typedef struct{Da
2016-12-26 23:29:25 388
原创 线程实例
任务和代码:#include #include #include struct operand{int data[2];};void *addfunc(void *arg){struct operand *pdata = (struct operand *)arg;int result;result = pdata->data
2016-12-25 22:17:08 225
原创 exec族,以execl为例
任务和代码:#include #include #include #include int main(){ int ret = execl("/mnt/hgfs/shared/jincheng/exit", "exit", NULL);if(ret == -1){ perror("execl");return -1;}p
2016-12-23 20:17:15 231
原创 父进程与子进程
任务和代码:#include #include #include int main(){ pid_t pid;pid = fork();if(pid == 0) //在子进程中 { printf("***my ID is = %d\n", getpid());printf("***pare
2016-12-22 22:15:03 708
原创 输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字, 则最小的4个数字为1,2,3和4
任务和代码:/**********************************************************File Name: min.cAuthor: 李杰 Date:2016-12-15Description: 查找最小的k个元素题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5
2016-12-15 21:33:00 2854
原创 翻转句子中单词的顺序,但单词内字符的顺序不变
任务和代码:/*****************************************************************File Name : daoxuAuthor : 李杰 Date : 2016.12.11Description : 翻转句子中单词的顺序,但单词内字符的顺序不变***********
2016-12-14 22:59:26 533
原创 打印菱形星号组合(俩种解法),不允许只用printf,要求采用循环的方式,找规律。
任务和代码第一种解法:#include #define N 7int main(){ char str[N][N];int i = 0;int j = 0;for(i = 0; i {for(j = 0; j {str[i][j] = 32;}}int m = N;int n = 0;i = 0;
2016-12-13 22:16:16 566
原创 写一个顺序栈
任务和代码:#include #define STACK_SIZE 100 //定义栈大小为100#define OK 0 #define ERROR -1 typedef int DATATYPE;typedef struct{DATATYPE data[STACK_SIZE]; // 栈数组int
2016-12-10 22:19:11 452
原创 static
任务和代码:#include int fun1(){ int i = 0;i = i + 1;printf ("i = %d\n", i);}int fun2(){ static int j = 0;j = j + 1;printf ("j = %d\n", j);}int main(){ int i
2016-12-09 22:38:00 224
原创 输出9*9乘法表,输出以直角三角形的形状输出
任务和代码:#include int main(){ int i = 0; int t = 0; int s = 0; int count = 0; for(i=1; i { for(t=1; t{ s = t * i; printf("%d * %d
2016-12-06 00:10:06 4826
原创 数据结构---线性表
线性表分为(1) 顺序表 (2)链表: 链表又分为单链表,循环链表,双向链表线性表的定义 定义n个数据元素的有限序列,记作(a1, a2, …, an)ai 是表中数据元素,n 是表长度线性表的特点 (1) 除第一个元素外,其他每一个元素有一个且仅有一个 直接前驱。 (2) 除最后一个元素外其他每一个元素有一个且仅
2016-12-05 00:47:34 222
原创 结构体数组指针的使用
任务和代码:#include struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩}stus[] = { {"Zhou ping", 5, 18, 'C', 145.0},
2016-12-03 21:44:11 1742
原创 输入一个字符串,然后逆序输出
任务和代码:include int main(){ char a[50]; printf("please input a string:\n"); scanf("%s", a); int i; int len = 0; for(i = 0; i { if(a[i] == '\0')
2016-12-03 00:06:47 3469
原创 12月的第一天
今天是12月的第一天,感觉每次学习到深夜都有一种满足感,渐渐地习惯并且喜欢现在的生活方式吧,每天做什么事情,包括饮食学习都很有节奏,规律吧。每天能够想通几道题目,或者经过查询资料,咨询老师,最终解决,还是很开心的!我希望今天的努力变成明年盛开的果实,打好基础,对新的一月充满了希望与期待,每天都满怀着能量对待生活与学习。走到哪里都是一样,做事情的态度和责任心真的非常重要,也是别人评价你的
2016-12-02 00:39:22 222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人