当前位置: 首页 > news >正文

php网站开发练手项目凡科登录电脑版

php网站开发练手项目,凡科登录电脑版,东莞 营销网站,dedecms网站后台模板进程间通讯 进程间通讯包含五种方式:管道(无名和有名FIFO)、消息队列、信号量、共享内存、Socket(套接字)(支持不同主机间) 参考文章:Linux进程间通信详解(最全) 管道(无名和有名FIFO) 消息队列 由msgget、msgctl、msgsnd、ms…

进程间通讯

进程间通讯包含五种方式:管道(无名和有名FIFO)、消息队列、信号量、共享内存、Socket(套接字)(支持不同主机间)
参考文章:Linux进程间通信详解(最全)

管道(无名和有名FIFO)

消息队列

由msgget、msgctl、msgsnd、msgrcv四个函数组成。
参考文章:消息队列函数

int Queue_Init(key_t key)
{int msg_id = msgget(key, IPC_CREAT | 0666);if (-1 == msg_id)printf("msgget error!\n");return msg_id;
}int Queue_SendData(int msg_id, void *data, size_t size, int flag)
{int err = msgsnd(msg_id, data, size - sizeof(long), flag);if (-1 == err)printf("msgsnd error!\n");return err;
}int Queue_RecvData(int msg_id, void *data, size_t size, long type, int flag)
{int err = msgrcv(msg_id, data, size - sizeof(long), type, flag);if (-1 == err)printf("msgrcv error!\n");return err;
}int Queue_Delinit(int msg_id)
{int err = msgctl(msg_id, IPC_RMID, NULL);if (-1 == err)printf("msgctl error\n");return err;
}

信号量

参考

共享内存

  1. 共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。
  2. 因为多个进程可以同时操作,所以需要进行同步。
  3. 信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问
#define SHM_PATH     "/tmp"
typedef struct {size_t size;int shmid;int semid;void *share;
}T_Shm;static void shm_lock(T_Shm *shm)
{struct sembuf sops = {.sem_num = 0,.sem_op = -1,.sem_flg = SEM_UNDO};semop(shm->semid, &sops, 1);
}static void shm_unlock(T_Shm *shm)
{struct sembuf sops = {.sem_num = 0,.sem_op = 1,.sem_flg = SEM_UNDO};semop(shm->semid, &sops, 1);	
}int Shm_Init(T_Shm *shm, size_t size)
{key_t key = ftok(SHM_PATH, 1);if (-1 == key) return -1;int shm_id = shmget(key, size, 0666 | IPC_CREAT);if (-1 == shm_id) return -1;int sem_id = semget(key, 1, 0666 | IPC_CREAT);if (-1 == sem_id) return -1;int err = semctl(sem_id, 0, SETVAL, 1);if (-1 == err) return -1;void *data = shmat(shm_id, NULL, 0);if (data == (void *)-1) return -1;shm->semid = sem_id;shm->shmid = shm_id;shm->size = size;shm->share = data;return 0;
}int Shm_SetData(T_Shm *shm, const void *data)
{if (NULL == data) return -1;shm_lock(shm);memcpy(shm->share, data, shm->size);shm_unlock(shm);return 0;
}int Shm_GetData(T_Shm *shm, void *data)
{if (NULL == data) return -1;shm_lock(shm);memcpy(data, shm->share, shm->size);shm_unlock(shm);return 0;
}int Shm_Delinit(T_Shm *shm)
{semctl(shm->semid, 0, IPC_RMID);return shmdt(shm->share);
}

Socket(套接字)

http://www.dtcms.com/a/543600.html

相关文章:

  • 户外网站 整站下载网站开发怎么在页面上调用高德地图显示位置
  • 深州市住房保障和城乡建设局网站网站建设工作流程html
  • 广东网站建设咨询电话网站不显示内容
  • 自己做网站需要学什么东西wordpress怎么防站
  • 代客做网站祥云县住房和城乡建设局网站
  • 网站建设jiage网站开发php和ui
  • 网站建设后怎么赚钱小程序制作平台开发
  • .tv做网站怎么样定制网络机顶盒
  • 高端html5网站设计工作室织梦模板 dedecms5.7应用下载安装
  • 建设网站买了域名还要什么资料北京网站公司哪家好
  • 响应式网站是免费域名注册解析
  • 百度广告商重庆seo技术教程博客
  • 网站公司说我们做的网站服务器不够用成都工装设计公司排名
  • 惠州北京网站建设有哪些程序网站
  • 太原网站建设质量推荐自然搜索优化
  • ui网上接单网站佛山有什么好玩的
  • 丽江市住房建设局网站网站栏目设计怎么写
  • 在招聘网站做电话销售怎么样wordpress怎么修改主题首页
  • 微商城手机网站模板淮南网格员招聘
  • 网站建设排名奇艺地域网站建设运营费用
  • 个人网站怎么写漳州网站建设哪家最权威
  • 建设动漫网站的目的云南省建设厅网站二级建造师
  • 北京做网站设计ps做阿里网站分辨率设置
  • HTML5网站建设案例旅行网站建设
  • 河南省建设厅网网站首页什么是门户网站广告
  • 莒县建设局官方网站万网虚拟主机建网站
  • 安徽网站建设的基本步骤企业形象设计包括哪些内容
  • 看一个网站是用什么语言做的wordpress 用户修改密码
  • 兰州做网站或小程序公司推广业务哪个平台好
  • 网站制作及实现牟平建设局网站