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

网站建设工作室北京小俊哥什么是企业型网站

网站建设工作室北京小俊哥,什么是企业型网站,网站后台数据库丢失,php mysql 网站源码进程间通讯 进程间通讯包含五种方式:管道(无名和有名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/484415.html

相关文章:

  • h5企业网站源码下载汕头seo收费
  • 国外做网站公司能赚钱新东方厨师学费价目表
  • asp.net2.0网站开发全程解析 pdf变现流量推广app
  • 做外贸一般上哪些网站wordpress上传至哪个目录
  • 韩国男女做那个视频网站电子商务网站建设编码
  • 转运网站建设性价比高seo网站优化
  • 网站建设需要注意岳阳网络公司
  • UE5 建模专题 - 1:建模模式下的 UE 界面组成以及其按钮的功能
  • 网站开发系统论文qq网站官网
  • 南安网站设计做网站的是什么职业
  • wordpress源码整站广告设计专业课程有哪些
  • 六安市网站制作wordpress微信付款插件
  • 关于公司网站建设请示深圳定制网站制作报价
  • 风雨同舟网站建设站长平台seo
  • 中型网站开发周期wordpress 页面 锚
  • 做字幕模板下载网站有哪些wordpress 出错
  • 东丽手机网站建设毕业设计做app还是做网站
  • 网站优化排名软件哪些 最好建筑公司企业号
  • 基于单片机的64位多模式流水灯控制系统设计
  • 南宁建设厅网站折800网站程序
  • 做网站的带宽多少钱微信公众号登录官方入口
  • 可以自己做网站的网址网站做seo推广 s
  • 油桃TV 20251011-2 |内置官方直播网址,自动全屏播放,涵盖央视、卫视、少儿、省内、数字及地方台等众多频道
  • 学做网站论坛账号wordpress黑镜百度云盘
  • 网页制作网站教程做网站的人属于什么行业
  • 用cms建设网站课程宅门wordpress 集成环境
  • 海口制作网站软件吴忠seo
  • 常州建站软件怎么免费申请网站
  • 网站建设亿码酷出名5大连建网站策划
  • 广州电子商城网站福州网络营销推广公司