仓酷云 发表于 2015-1-18 11:22:51

Linux编程之Linux下历程通讯C动静行列仓酷云

看不懂man文档的人.在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有.
代码

/*
*main.cc
*
*Createdon:2010-1-19
*Description:IPC–动静行列的完成
*Copyright:2010@ICTLiHeyuan
*/
#include<sys/types.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#include<sys/types.h>
#include<unistd.h>
#include<fcntl.h>
#include<errno.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedefstruct{
longmtype;
charmtext;
}_msgbuf;
constchar*path="/tmp/test_ipc_1234";
intproj_id=123;
intret;
intmain(){
//第零步创立path这个文件
ret=creat(path,S_IRWXU);
if(ret==-1){
printf("createfilefail.n");
exit(-1);
}
//第一步取得key_t(SystemVkey)
key_tkey=ftok(path,‘d’);
if(key==-1){
printf("getkey_tfail.n");
exit(-1);
}
//第二步创立一个message_queue
//这个|S_IRWXU是设置权限,同open的mode参数,最低8位决意
intmsgid=msgget(key,IPC_CREAT|S_IRWXU);
if(msgid==-1){
printf("createmsg_queuefail:%s.n",strerror(errno));
exit(-1);
}
ret=fork();
if(ret==-1){
printf("forkfail.n");
exit(-1);
}elseif(ret==0){
printf("I’mchildpid%dn",getpid());
//第三步子历程发送msgsnd
_msgbufmsg1;
msg1.mtype=4;
strcpy(msg1.mtext,"Hi");
ret=msgsnd(msgid,&msg1,sizeof(_msgbuf),0);
if(ret==-1){
printf("sendmsgfail:%sn",strerror(errno));
}else{
printf("sendmsgsuccess.n");
}
exit(0);
}else{
//第四步父历程承受msgsnd
printf("I’mfatherpid%dn",getpid());
_msgbufmsg1;
ssize_tsize=msgrcv(msgid,&msg1,sizeof(msg1),4,0);
if(size==-1){
printf("rcvmsgfail.n");
}else{
printf("Childsendmeamsg%dbytes,said:%sn",size,msg1.mtext);
}
}
ret=msgctl(msgid,IPC_RMID,NULL);//删除动静行列
if(ret==-1){
printf("unlinkmsgqueueerrorn");
exit(-1);
}
exit(0);
}


学习linux,就意味着更快的开发效率,等更多关于软件本身或者说操作系统本身的理解。

灵魂腐蚀 发表于 2015-1-20 22:52:14

我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。

柔情似水 发表于 2015-1-24 12:04:44

学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]

金色的骷髅 发表于 2015-1-30 07:26:03

让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?

活着的死人 发表于 2015-2-4 19:39:06

要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。

再现理想 发表于 2015-2-10 05:24:21

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。

小妖女 发表于 2015-2-28 21:21:53

我感觉linux的学习,学习编程~!~!就去学习C语言编程!!

山那边是海 发表于 2015-3-7 13:13:39

我感觉linux的学习,学习编程~!~!就去学习C语言编程!!

第二个灵魂 发表于 2015-3-7 15:39:06

Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。

不帅 发表于 2015-3-15 08:48:15

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
页: [1]
查看完整版本: Linux编程之Linux下历程通讯C动静行列仓酷云