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

做网站平台成本wordpress php版本

做网站平台成本,wordpress php版本,做网站需要几个岗位,做网站能赚到钱吗回顾 共7种方式#xff1a; 古老的进程间通信方式#xff1a; 管道#xff1a; 无名管道 有名管道 信号 系统V IPC进程对象 共享内存 消息队列 信号量集 socket通信 //网络 ------------------------- 无名管道 pipe#xff08;#xff09; 特点#xff1a; 用于…回顾 共7种方式 古老的进程间通信方式 管道 无名管道 有名管道 信号 系统V IPC进程对象 共享内存 消息队列 信号量集 socket通信  //网络 ------------------------- 无名管道 pipe 特点 用于亲缘关系进程间 继承相关的文件描述符 -- 对应实际同一个管道 管道的特点 1.形成的数据流 2.FIFOfirst in first out // -- 数据结构的特点 -- 队列排队 FIFO first in last out//  栈的特点 3.管道中的的数据读取之后就没有了 管道读写规则 a.读端存在写管道 b.独断不存在写管道 --- 股电脑破裂  SIGPIPE 信号 --- 进程收到这信号后会被结束掉 c.写段存在读管道 --- 没数据读操作阻塞 d.写端变速存在读管道 -- 没数据读操作不阻塞 立即返回  返回0 表示没数据 有名管道: 创建 mkfifo // 在系统中创建了一个 管道文件的名字 // 不同的进程毫无亲缘关系的进程可以通过该名字  最终操作到同一个管道进而实现通信 ------------------------------------------ 信号通信 异步、同步 用户自定义操作 signal    #include signal.h typedef void (*sighandler_t)(int); // 》void (*xx)(int); void fun(int);                            》xx是 void fun(int) 类型函数的函数指针                            》typedef void(*xx)(int)   sighandler_t; sighandler_t signal(int signum, sighandler_t handler); 功能 用于向操作系统注册信号处理函数以便在特定信号发生时执行相应的操作。 参数 signum 是信号编号它是一个整数用于指定要处理的信号。 handler是一个函数指针它指向的信号处理函数将在接收到 signum 指定的信号时被                                   调用。        当handler为SIG_IGN时表示忽略此信号需要注意的是SIGKILL和SIGSTOP信号不能被忽略。当handler为SIG_DFL时表示接到此信号后的动作是系统默认动作。当handler是一个函数地址时表示当接收到对应编号的signo信号时执行该函数。 返回值 signal函数的返回值也是一个 sighandler_t 类型的函数指针它指向之前注册        在 signum 上的信号处理函数。如果注册失败signal 函数将返回 SIG_ERR。 练习 1、自定义处理信号10和12 #includestdio.h #includeunistd.h #includesignal.hvoid handler_10_12(int sno) {printf(recieve %d\n,sno); }int main(int argc, const char *argv[]) {if(signal(SIGUSR1,handler_10_12) SIG_ERR){perror(signal fail);return -1;}if(signal(SIGUSR2,handler_10_12) SIG_ERR){perror(signal fail);return -1;}while(1){printf(hello\n);sleep(1);}return 0; } 2、通过信号处理的方式回收僵尸态子进程   // 异步处理收尸不阻碍父进程的操作 #includestdio.h #includeunistd.h #includesignal.h #includestdlib.h #include sys/wait.hvoid do_wait(int sno) {wait(0);printf(child wait\n); }int main(int argc, const char *argv[]) {if(signal(SIGCHLD,do_wait) SIG_ERR){perror(signal fail);return -1;}pid_t pid fork();if(pid 0){perror(fork fail);return -1;}if(pid 0){int i 0;while(1){printf(father %d\n,i);sleep(1);}}if(pid 0){int i 0;while(1){printf(child %d\n,i);sleep(1);}}return 0; } 3、 函数 alarm  计数  括号内写秒数到时发送SIGALRM信号  则说明超时1次。 #include stdio.h #include unistd.h #include stdlib.h #include signal.hint count;void handler(int signo) {printf(---signal---%d\n,count);;if(count 3){printf(---timeout---\n);exit(0);}alarm(3); }int main(int argc, const char *argv[]) {alarm(3);char buf[1024] {0};signal(SIGALRM,handler);while(1){fgets(buf,sizeof(buf),stdin);count 0;alarm(3);}return 0; } kill    #include sys/types.h       #include signal.h int   kill(pid_t pid, int sig);             功能通过该函数可以给pid进程发送信号为sig的系统信号。             参数   pid 要接收信号的进程pid                           sig 当前程序要发送的信号编号 《 kill  -l             返回值 成功 0                             失败  -1 raise int raise(int sig) kill(getpid(),int sig);               功能给进程自己发送sig信号 pause int pause(void);             功能                  进程暂停不再继续执行除非收到其他信号。 IPC对象: (*)共享内存 //进程间效率最高的通信方式 shmsemmsg system v  共享内存  信号量集 IPC对象操作通用框架     0x  ftok     key值 申请 》读写 》关闭 》卸载 key值    //      申请  -- xxxget  //key -- ipc对象      读写      关闭      卸载 key值》唯一键值 创建方式有三种 1、IPC_PRIVATE 固定的私有键值其值等于 0x0         一般用于有亲缘关系的进程间使用。 2、ftok()创建临时键值。 #include sys/types.h             #include sys/ipc.h             key_t ftok(const char *pathname, int proj_id);                     功能通过该函数可以将pathname指定的路径用来以                                proj_id生成唯一的临时键值。                     参数pathname 路径名称》任意文件只要不会                                被删除重建即可。                                proj_id  整形的数字一般用ASCII码的单字符                                 表示与参数1的运算。 返回值成功 返回唯一键值                                   失败  -1 申请 1、申请对象shmget()              #include sys/ipc.h             #include sys/shm.h                         ps aux|grep a.out                         shared memory get         IPC_CREAT|0666             int shmget(key_t key, size_t size, int shmflg);                     功能                           使用唯一键值key向内核提出共享内存使用申请                     参数 key   唯一键值                           size  要申请的共享内存大小                           shmflg 申请的共享内存访问权限八进制表示                                   如果是第一个申请则用IPC_CREAT                                   如果要检测是否存在用IPC_EXCL                     返回值                             成功 返回共享内存id一般用shmid表示                             失败  -1 2、映射对象shmat()      void *shmat(int shmid, const void *shmaddr, int shmflg);             功能将指定shmid对应的共享内存映射到本地内存。             参数 shmid 要映射的本地内存                      shmaddr 本地可用的地址如果不确定则用NULL表示                                 由系统自动分配。                      shmflg                                      0         ,  表示读写                                    SHM_RDONLY, 只读             返回值                          成功 返回映射的地址一般等于shmaddr                          失败 (void*)-1 3、删除对象shmctl      int shmctl(int shmid, int cmd, struct shmid_ds *buf);             功能                        修改共享内存属性也可以删除指定的共享内存对象。             参数shmid 要删除的共享内存对象                        cmd                         IPC_RMID 删除对象的宏                        buff  NULL 表示只删除对象。             返回值成功 0                            失败 -1 练习 // a #includestdio.h #includesys/types.h #includesys/ipc.h #includesys/shm.h #includestring.h #includeunistd.h #include signal.hint main(int argc, const char *argv[]) {key_t key ftok(/,A);if (key 0){perror(ftok fail);return -1;}int shmid shmget(key,1024,IPC_CREAT|0666);if(shmid 0){perror(shmget fail);return -1;}void *p shmat(shmid,NULL,0);if(p (void *)-1){perror(shmat fail);return -1;}pid_t *pid p;pid_t pid_b *pid;printf(pid_b %d\n,pid_b);while(1){fgets(p,1024,stdin);kill(pid_b,10);printf(p %s\n,(char *)p);if(strncmp((char *)p,quit,4) 0){break;}}return 0; }//b #includestdio.h #includesys/types.h #includesys/ipc.h #includesys/shm.h #includestring.h #includeunistd.h #includesignal.hvoid handler(int signo) {}int main(int argc, const char *argv[]) {key_t key ftok(/,A);if (key 0){perror(ftok fail);return -1;}int shmid shmget(key,1024,IPC_CREAT|0666);if(shmid 0){perror(shmget fail);return -1;}void *p shmat(shmid,NULL,0);pid_t *pid p;*pid getpid();printf(pid %d\n,*pid);if(p (void *)-1){perror(shmat fail);return -1;}signal(SIGUSR1,handler);while(1){ pause();printf(p %s\n,(char *)p);if(strncmp((char *)p,quit,4) 0){break;}}return 0; } 消息队列  信号量集
http://www.pierceye.com/news/584908/

相关文章:

  • 小型公司建网站腾讯风铃wordpress
  • 广州做模板网站的公司怎么区分营销型和展示型的网站
  • 网站推广服务外包1688阿里巴巴国际站首页
  • 深圳学校网站建设wordpress rossi 汉化
  • 课程网站课程资源建设北京吴勇设计工作室
  • 网站建设费用什么意思软件制作专业
  • 扬中本地网站外国做美食视频网站
  • 深圳手机网站制作价钱阜阳中国建设银行官网站
  • 廊坊建设网站企业安卓开发自学教程
  • 做网站虚拟主机配置汉沽手机网站建设
  • 设计一个网站先做哪些构造姑苏区建设局网站
  • 制造业营销外贸网站建设网站管理的内容包括
  • 看电视剧的免费网站app下载网站等保如何做
  • 如何做网站的营销中山vi设计公司
  • 搜索引擎网站使用的排名规则室内设计联盟网页版
  • php 手机网站开发手机端网站开发框架
  • 苏州电信网站备案浙江搜索引擎优化
  • 黄岛网站建设哪家好市体育局网站 两学一做
  • 上海建设银行网站转账记录吗外国网站做问卷调查挣钱
  • 深圳做购物网站十堰网络销售
  • 郑州企业网站优化多少钱百度竞价排名价格
  • js特效做的好的网站什么专业是做网站
  • 淄川响应式网站建设网站在国内服务器在国外
  • 施工企业市场经营工作思路及措施个人如何优化网站有哪些方法
  • 怎么做一个盈利网站义乌创博网络科技有限公司
  • 学校网站建设代码不重名的建筑公司名字
  • 网站开发模块的需求海外销售平台有哪些
  • 前端和后端的区别工资郑州网站优化怎样做
  • 小程序模板平台有哪些网站优化包括哪些内容
  • 免费建网站的好的移动端网站模板下载