newlist

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年11月24日

摘要: 下面的数据声明都代表什么?float(**def)[10]def是一个二级指针,他指向的是一个一维数组的指针,数组的元素都是floatdouble*(*gh)[10]gh是一个指针,他指向一个一维数组,数组元素都是double *double(*f[10])();f是一个数组,f有10个元素,元素都是函数的指针,指向的函数类型是没有参数且返回double的函数int*((*b)[10]);就跟"int *(*b)[10]"是一样的,是一维数组的指针Long (* fun)(int)函数指针int (*(*F)(int,int))(int)F是一个函数的指针,指向的是函数的类 阅读全文
posted @ 2011-11-24 21:05 一枚程序 阅读(208) 评论(0) 推荐(0)

摘要: 写出函数指针、函数返回指针、const指针、指向const的指针、指向const的const指针答案:void (f*)()void * f()const int*int* constconst int* const函数指针的使用#include<stdio.h>//这里最好可以使用<cstdio.h>int max(int x,int y){ return x>y?x:y;}int main(){ int max(int,int);//这两行代码通常是是关于函数指针调用的,通常用做考点 int (*p)(int,int)=&max; int a,b,c, 阅读全文
posted @ 2011-11-24 20:52 一枚程序 阅读(197) 评论(0) 推荐(0)

摘要: 在linux中安装安装sendmail直接yum-yinstallsendmail然后yum-yinstallsendmail-cf 阅读全文
posted @ 2011-11-24 20:30 一枚程序 阅读(208) 评论(0) 推荐(0)

摘要: 消息队列 A 和 B 是 相对独立的两支程序,现在 A 传送 10 个Student 到 B B 将Student 读取出来,显示在界面上 然后 B 传送 10 个 Teacher 到 A ,A 显示 teacher 在界面上#include "public.h"typedef struct students{long mtype;int no;char username[100];}*StusNode,SNode;int main(){int ret=-1;int msg_flags,msg_id;key_t key;struct msqid_ds msg_info;SN 阅读全文
posted @ 2011-11-24 14:41 一枚程序 阅读(392) 评论(0) 推荐(0)

摘要: IPC 有命管道 创建一个有名管道 /tmp/stduent.data A 和 B 是 相对独立的两支程序,现在 A 传送 10 个Student 到 B B 将Student 读取出来,显示在界面上 然后 B 传送 10 个 Teacher 到 A ,A 显示 teacher 在界面上A.cpp#include "public.h"#define FIFO_NAME "/temp/Linux/my_fifo"#define BUFFER_SIZE PIPE_BUF#define TEN_MEG (1024*1024*10)typedef struct 阅读全文
posted @ 2011-11-24 14:38 一枚程序 阅读(287) 评论(0) 推荐(0)

摘要: 试验 在一个进程内用 sigprocmask 堵塞 定义在 sigset中的信号#include "public.h"void myaction2(int sig,siginfo_t *info,void *reverse){for (int i=0;i<5;i++){printf("myaction2 = %d\n",i);sleep(1);}}int main(){int iFlag=0;pid_t pid;union sigval sival_data;struct sigaction action;action.sa_sigaction=m 阅读全文
posted @ 2011-11-24 14:33 一枚程序 阅读(332) 评论(0) 推荐(0)

摘要: 试验 struct sigaction 的 mask ,让他做到 在处理SIGUSR信号的时候,堵塞 SIGINT 和 SIGUSR2 信号(这两两个信号都是从fork出的子进程中发出来的)#include "public.h"void myaction(int sig,siginfo_t *info,void *reverse){int i=0;while (i<5){/*printf("i = %d sig=%d\n",i,sig);printf("recive value=%d\n",info->si_value.s 阅读全文
posted @ 2011-11-24 14:32 一枚程序 阅读(2445) 评论(0) 推荐(0)

摘要: 在上一篇共享内存的基础上加上pv操作,也就是 A 进程去写 的时候要加上P 写完了 加个 Vpvread.cpp#include "public.h"union semun{int val;struct semid_ds *buf;unsigned short *array;struct seminfo *__buf;};int main(){SNode student;char buffer[20];pid_t pid=0;int i=1;int ret=0;//嵌入式信号量代码union semun mysemun;struct sembuf mysembuf;int 阅读全文
posted @ 2011-11-24 14:30 一枚程序 阅读(211) 评论(0) 推荐(0)

摘要: 在上一篇共享内存的基础上加上pv操作,也就是 A 进程去写 的时候要加上P 写完了 加个 Vpvwrite.cpp#include "public.h"union semun{int val;struct semid_ds *buf;unsigned short *array;struct seminfo *__buf;};int main(){SNode student;char buffer[20];pid_t pid=0;int i=1;int ret=0;//嵌入式信号量代码union semun mysemun;struct sembuf mysembuf;int 阅读全文
posted @ 2011-11-24 14:29 一枚程序 阅读(306) 评论(0) 推荐(0)

摘要: 1 编写 A 程序 往共享内存 写入 Student_T 结构体, B 程序往共享内存读 Student_T 结构体#include "public.h"int main(){SNode student;char buffer[20];pid_t pid=0;int i=1;int ret=0;//开辟一个可以存储10个学生信息的共享内存空间mem_no=shmget(MEM_KEY,10*MEM_SIZE,MEM_FLAG);if (mem_no==-1){printf("fail to shmget\n");exit(0);}//共享内存的周地址映射 阅读全文
posted @ 2011-11-24 14:27 一枚程序 阅读(275) 评论(0) 推荐(0)

摘要: #include "public.h"int main(){mem_no=shmget(MEM_KEY,10*MEM_SIZE,MEM_FLAG);pstudent=(StuNodes)shmat(mem_no,NULL,0);pstudent_first=pstudent;pstudent_first2=pstudent;//读取数据for (int i=0;i<10;i++){printf("student.no=%d student.username=%s\n",pstudent_first->no,pstudent_first-> 阅读全文
posted @ 2011-11-24 14:27 一枚程序 阅读(158) 评论(0) 推荐(0)