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

企业网站主页设计模板购物网站建设网页推广

企业网站主页设计模板,购物网站建设网页推广,企业网站的短视频中心模板,网站做次级页面匿名管道 struct_file的两套资源 管道只能单向通信 特征 1.如果管道没有数据 读端在读 默认会直接阻塞正在读取的进程 2.写端写满 在写会阻塞 等待对方读取 管道设计 命名管道 实现管道通信 #pragma once #includeiostream #includestring #includesys/… 匿名管道 struct_file的两套资源 管道只能单向通信 特征 1.如果管道没有数据 读端在读 默认会直接阻塞正在读取的进程 2.写端写满 在写会阻塞 等待对方读取 管道设计 命名管道 实现管道通信 #pragma once #includeiostream #includestring #includesys/types.h #includesys/stat.h #includecerrno #includecstring #includecassert #includeunistd.h #includefcntl.husing namespace std; #define NAME_PIPE /home/ls/lesson24/tmp2bool createFifo(const string path){int nmkfifo(path.c_str(),0777);if(n0)return true;else{couterrno:errnoerr stringstrerror(errno)endl;return false;} }void removeFifo(const string path){int nunlink(path.c_str());assert(n0);(void)n;}#includecomm.hppint main(){bool rcreateFifo(NAME_PIPE);assert(r);int rfdopen(NAME_PIPE,O_RDONLY);if(rfd0)exit(0);char buffer[1024];while(true){ssize_t sread(rfd,buffer,sizeof(buffer));if(s0){buffer[s]0;coutclient-server#bufferendl;}else if(s0){coutclient quit me tooendl;break;}else{couterr string:strerror(errno)endl;break;}}close(rfd);remove(NAME_PIPE);return 0; }#includecomm.hppusing namespace std; int main(){int wfdopen(NAME_PIPE,O_WRONLY);if(wfd0)exit(0);char buffer[1024];while(true){coutPlease Say#;fgets(buffer,sizeof(buffer),stdin);ssize_t nwrite(wfd,buffer,strlen(buffer));assert(nstrlen(buffer));(void)n;}close(wfd);return 0; }共享内存 原理 接口的认识 共享内存的优缺点 和管道对比拷贝次数 实现通信 //comm.hpp #pragma once #includesys/ipc.h #includesys/shm.h #includecerrno #includecstring #includeiostream #includeunistd.h#define PATHNAME . #define PROJ_ID 0x66 #define MAX_SIZE 4096key_t getkey(){key_t kftok(PATHNAME,PROJ_ID);if(k0){std::cerrerrno:strerror(errno)std::endl;exit(1);}return k; }int getShmHelper(key_t k,int flags){int shmidshmget(k,MAX_SIZE,flags);if(shmid0){std::cerrerrno:strerror(errno)std::endl;exit(2);}return shmid; }int getShm(key_t k){return getShmHelper(k,IPC_CREAT); }int createShm(key_t k){return getShmHelper(k,IPC_CREAT|IPC_EXCL|0666); }void* attachShm(int shmid){void* memshmat(shmid,nullptr,0);if((long long)mem-1){std::cerrerrno:strerror(errno)std::endl;exit(3);}return mem; }void detachShm(void* start){if(shmdt(start)-1){std::cerrerrno:strerror(errno)std::endl;} }void delShm(int shmid){if(shmctl(shmid,IPC_RMID,nullptr)-1){std::cerrerrno:strerror(errno)std::endl;} } //shm_client.cpp #includeiostream #includecomm.hppint main(){key_t kgetkey();printf(key:0x%x\n,k);int shmidgetShm(k);printf(shmid:%d\n,shmid);sleep(5);char* start(char*)attachShm(shmid); //关联共享内存printf(attch sucess,address start:%p\n,start);const char* messagehello server,我是另一个进程 正在和你通信;pid_t idgetpid();int cnt1;while(true){sleep(1);snprintf(start,MAX_SIZE,%s[pid:%d][消息编号:%d],message,id,cnt);}detachShm(start); //去关联sleep(5);return 0; } //shm_server.cpp #includeiostream #includecomm.hppint main(){key_t kgetkey();printf(key:0x%x\n,k);int shmidcreateShm(k);printf(shmid:%d\n,shmid);sleep(5);//关联共享内存char *start(char*)attachShm(shmid);printf(attch sucess,address start:%p\n,start);//使用while(true){printf(client say:%s\n,start);sleep(1);}//去关联detachShm(start);sleep(10);//删除共享内存delShm(shmid);return 0; } 消息队列了解 信号量 为什么要有信号量 信号 实现kill #includeiostream #includeunistd.h #includesignal.h #includecstdio #includecstring #includestringstatic void Usage(const std::string proc){std::coutUsage:procpid signo\nstd::endl; }int main(int argc,char *argv[]){if(argc!3){Usage(argv[0]);exit(1);}pid_t pidatoi(argv[1]);int signoatoi(argv[2]);int nkill(pid,signo);if(n!0)perror(kill);while(true){std::couthellostd::endl;sleep(1);} } 产生信号的方式 除0的理解 软件条件 #includeiostream #includeunistd.h #includesignal.h #includecstdio #includecstring #includestring #includecstdlib/* static void Usage(const std::string proc){std::coutUsage:procpid signo\nstd::endl; } */ int cnt0; void catchSig(int signo){std::cout获取一个信号 信号编号:cntstd::endl;exit(1); }int main(int argc,char *argv[]){signal(SIGALRM,catchSig);alarm(1);while(true){cnt;} } 闹钟管理 核心转储 阻塞信号 信号捕捉流程 状态切换 实验 #includeiostream #includeunistd.h #includesignal.h #includevector#define MAX_SIGNUM 31 #define BLOCK_SIGNAL 2static std::vectorint sigarr{2,3};static void show_pending(const sigset_t pending){for(int signoMAX_SIGNUM;signo0;signo--){if(sigismember(pending,signo)){std::cout1;}elsestd::cout0;}std::cout\n; }static void myhandler(int signo){std::coutsigno号信号已经被递达std::endl; }int main(){for(const auto sig:sigarr){signal(sig,myhandler);}sigset_t block,oblock,pending;//初始化sigemptyset(block);sigemptyset(oblock);sigemptyset(pending);//增加要屏蔽的信号for(const auto sig:sigarr){sigaddset(block,sig);}//开始屏蔽 设置进内核进程sigprocmask(SIG_SETMASK,block,oblock);//遍历打印pending信号集while(true){//初始化sigemptyset(pending);//获取它sigpending(pending);//打印show_pending(pending);sleep(1);}int cnt10;if(cnt--0){sigprocmask(SIG_SETMASK,oblock,block);std::cout恢复信号屏蔽\n;}}
http://wiki.neutronadmin.com/news/376558/

相关文章:

  • 甜点网站要怎么做专做农产品跨境的网站有
  • 做水处理药剂的公司网站海南房产信息网
  • 企业做门户网站的重要性工业互联网平台分类
  • 如何建立网站和网页设计签名免费网站
  • 网上书店网站建设wp系统网站如何做seo
  • 织梦如何做网站留言功能wordpress 验证方式
  • asp网站怎么仿站建设银行网站怎么查工资明细
  • 江西智能网站建设哪家好深圳做模板网站
  • 购物商城网站开发实验报告正规网站模板设计图
  • 个人网站建设完整教程衡水专业做wap网站
  • 用php 如何做网站机票酒店 网站建设
  • 西宁市网站建设价格各地信息推广平台
  • 网站镜像上传到域名空间室内设计效果图线稿
  • 张家界旅游网站官网让别人做网站要注意什么6
  • 企业网站建设目的意义网站运营小结
  • 兰州网站seo公司郑州网络营销哪个好
  • 在地税网站怎么做税种认定装修效果图制作软件
  • 西部数码网站管理系统百度推广好不好做
  • 建设厅网站举报个人博客模板wordpress
  • 百度收录快的发帖网站网站的风格设计包括哪些内容
  • 网站设计的基本原则wordpress音乐播放页面
  • 手机端企业网站怎么做成都网络推广平台
  • 电商网站设计公司只选亿企邦北京住建网站
  • 苏州企业网站制作开发有哪些网站能够免费找到素材
  • 做网站如何选择颜色wordpress网站分享朋友圈缩略图
  • 怎么才能建立一个网站卖东西网站建设思路及设计方案
  • 怎样用前端知识制作企业网站wordpress耗资源升级程序
  • 海南房产网站建设wordpress开源企业主题
  • 西部数码手机网站广州网站设计
  • wordpress网站更改主题信息中国新闻社邮箱