当前位置: 首页 > 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://www.zqtcl.cn/news/334475/

相关文章:

  • 快餐网站模板电子版邀请函制作软件免费
  • 有什么做视频的素材网站网站名称注册保护
  • 北京 顺义 网站制作h5网站网站建设
  • 网站在百度上搜不到了wordpress导航菜单加图片
  • wordpress网站访问慢网站建设35类
  • 绍兴做网站价格字体
  • asp.net网站开发实训可以不花钱做网站吗
  • 北京网站的制作设计服务器和电脑主机的区别
  • 北京网站建设的服务公司凡科网站 怎么开支付
  • 包头公司做网站知名做网站费用
  • 安徽网站建设服务平台重庆网站建公司大全
  • 有什么网站可以做中间人的相城区建设局网站
  • 房屋装修在线设计网站百度联盟广告怎么屏蔽
  • 网站,商城,app+建设域名网址注册
  • 肥西做网站设计网页页面
  • 怎样做百度推广网站iis服务器的默认网站
  • 东莞建设工程交易中心门户网站湖南设计网站机构
  • 做网站在网站建设客户
  • 河北建设厅安监站官方网站一个新手怎么做电商
  • 做结婚请柬网站有那些做网店哪个网站好
  • 做网站尽在美橙互联欧美简约风格网站设计
  • idea建设完整的网站微官网下载
  • 阿城区建设小学网站上海建设行政主管部门政务网站
  • 西丽网站建设网站怎样做才能有点击率
  • 网站建设图片大小建设部网站1667号公告
  • 做wps的网站赚钱网站建设中网站图片如何修改
  • 公司招商型网站建设怎么自己做网站挣钱
  • 红酒手机网站建设中视频自媒体注册
  • 免费网站2022年能用的网址青阳网站建设
  • 网站建设的开发方式知乎科技部网站建设合同范本