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

设计常用网站棋牌类网站是用游戏方式做的吗

设计常用网站,棋牌类网站是用游戏方式做的吗,网络服务提供者利用网络侵害他人,wordpress网站框架进程间通信方式通常有共享内存 信号量 消息队列 管道 FIFO Socket等几种。 共享内存的模型#xff0c;它是最有效率的进程间通信方式进程间信号量是进程间同步主要方式#xff0c;信号量操作为负的时候#xff0c;进程阻塞。直到信号量为正 内存映射是一种特殊的共享内存…     进程间通信方式通常有共享内存 信号量 消息队列 管道 FIFO Socket等几种。        共享内存的模型它是最有效率的进程间通信方式      进程间信号量是进程间同步主要方式信号量操作为负的时候进程阻塞。直到信号量为正         内存映射是一种特殊的共享内存方式只是本质上是对文件的操作      管道是亲戚进程间通信的常用方式常用于输入输出重定向         Fifo也成为命名管道可用于无关联进程之间      Socket是唯一一个不同主机间进程通信的方式 下面简单介绍一下他们的特点与功能               共享内存分配 绑定 脱离 释放 1效率高特别是大数据量通信 2各进程需要协调共同的键值需要提供额外机制防止竞争条件 3异步通信 4和信号量一同使用                    内存映射(多进程共享文件进行通信的机制)                    1分配内存                    2读入文件内容至内存                    3内存的内容回写到文件               信号量 1线程信号量:同步多线程环境的计数器。 2进程间同步的信号量: System V信号量操作和sharedmemory类似。               消息队列 1打开或创建消息队列 2读写操作 3获得或设置队列属性               管道 1单向信息的传递设备 2用于进程的线程之间或者是父子进程之间通信 3自动同步进程(管道的容量是有限的当管道写满的时候写入端自动阻塞管道容量4096字节)                 FIFO 1在文件系统中是一个有名字的管道 2任何进程都可以打开 3进程间无需关联                 SocketSocket 1是一种双向通信设备 2同一主机不同进程间通信 3不同主机间的通信     以下是一些程序帮助大家理解  共享内存 #includestdio.h       #includesys/shm.h       #includestring.h       #includefcntl.h       #includesys/stat.h       int main()       {           pid_t pid;           int share_id;           share_idshmget(IPC_PRIVATE,getpagesize(),IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR );           pidfork();           if(pid0)           {                char *share1NULL;                share1(char*) shmat (share_id, 0,0);                memset(share1,0,getpagesize());                strcpy(share1,hello,everyone\n);                shmdt(share1);           }           else if(pid0)           {                 char *share2NULL;                 share2(char*) shmat(share_id,0,0);                 printf(read characters from memory!\n);                 printf(%s\n,share2);                 shmdt(share2);                 shmctl(share_id,IPC_RMID,0);           }            return 1;       } 信号量      #include sys/types.h      #include sys/ipc.h      #include sys/sem.h      #includestdio.h      #includesys/stat.h      #includefcntl.h      #includeunistd.h      #define MAX 3      union semun     {         int val;         struct semid_ds *buf;         unsigned short int *array;         struct seminfo *_buf;     };     int sig_alloc(key_t key, int sem_flags)     {         return semget (key, MAX, sem_flags);     }       int sig_destory (int semid,int numth)     {         union semun ignored_argument;         return semctl (semid, numth, IPC_RMID,ignored_argument);     } /*         parray is a set of initialized value */     int sig_init (int semid,int *parray)    {         union semun argument;         int i0;         for(i0;iMAX;i)         {         //      values[i] *(parrayi);                   argument.array parray;                 semctl (semid, i, SETALL, argument);         }    }    int sig_wait(int semid,int numth)    {         struct sembuf operations[MAX];         operations[numth-1].sem_num numth-1;         operations[numth-1].sem_op -1;         operations[numth-1].sem_flg SEM_UNDO;         return semop(semid,operations,1);    }    int sig_post(int semid,int numth)    {         struct sembuf operations[MAX];         operations[numth-1].sem_num numth-1;         operations[numth-1].sem_op 1;         operations[numth-1].sem_flg SEM_UNDO;         return semop(semid,operations,1);    } int main()    {         pid_t pid;         int sig_id,i0;         int sig_val[MAX]{1,0,0};         sig_idsig_alloc(0,IPC_CREAT);         sig_init(sig_id,sig_val);         pidfork();         if(pid0)         {                 while(i10)                 {                         sig_wait(sig_id,3);                         printf(*************** \n);                         sig_post(sig_id,3);                 }         } else if(pid)         {                 i0;                 while(i10)                 {                         sig_wait(sig_id,1);                         printf(\n);                         sig_post(sig_id,1);                 }           }         return 1;     } 内存映射 #include sys/mman.h #include sys/types.h #includestdio.h #includestring.h #includesys/stat.h #includestdlib.h #includefcntl.h #includeunistd.h #define FILE_LENGTH 100 int main(int argc,char **argv) {         int fd1,fd2;         char *pfileNULL;         char *loadNULL;         int num;         if(argc3)         {                 printf(please input more file\n);                 return 0;         }           fd1open(argv[1],O_RDONLY);         fd2open(argv[2],O_RDWR|O_CREAT,S_IRUSR|S_IWUSR);         printf(fd2%d\n,fd2);           //fd2open(argv[2],O_WRONLY);         lseek (fd2, FILE_LENGTH1, SEEK_SET);         write (fd2, , 1);         lseek (fd2, 0, SEEK_SET);         printf(num%d\n,num);         printf(fd2%d\n,fd2);           pfile(char*)mmap(0,FILE_LENGTH,PROT_WRITE|PROT_READ,MAP_PRIVATE,fd2,0);         read(fd1,pfile,FILE_LENGTH);         write(fd2,pfile,FILE_LENGTH);         close(fd2);         printf(pfile%d\n,pfile);         munmap(pfile,FILE_LENGTH);         close(fd1);         return 1; }   管道      #include sys/mman.h      #include sys/types.h      #includestdio.h      #includestring.h      #includesys/stat.h      #includestdlib.h      #includefcntl.h      #includeunistd.h    int main ()    {     int fds[2];     pid_t pid;     pipe (fds);     pid fork ();     if (pid (pid_t) 0)     {       char str[10000];       sleep(1);       close(fds[1]);       read(fds[0],str,10000);       printf(%s,str);       close(fds[0]);     }     else if(pid0)     {         FILE*fp;         char a[80];         close(fds[0]);         fp(fopen(copy1.c,r));         if(fpNULL)         {            printf(can not open!!);            exit(0);         }         else         {         while(1)         {           if(fread(a,80,1,fp)0) break;           write(fds[1],a,sizeof(a));         }         }           wait();           close(fds[1]);           fclose(fp);           return 0;     } 转载于:https://www.cnblogs.com/3ddan/p/3251979.html
http://www.zqtcl.cn/news/743594/

相关文章:

  • 试玩平台类网站怎么做的东莞网站关键词推广
  • 网站开发慕枫页面模板怎么删除
  • 网站开发微信小程序需求量大吗珠海新闻头条最新消息
  • 闭站保护对网站影响公司主网站百度收录大量网站之类的信息
  • 在阿里云上建立网站的步骤在360网站做公告怎么弄
  • wordpress给公司建站安徽省干部建设教育网站
  • 做的网站需要买什么系统服务器找第三方做网站 需要注意
  • 网页设计模板网站推荐互联网创业项目网
  • 北京做网站的大公司动态列线图怎么制作网页
  • 江西省城乡和住房建设部网站google play应用商店
  • 网站前台设计过程泰安千橙网络科技有限公司
  • 可以做来电名片的网站网站开发频道构架
  • 网站备案没通过不了宣传片拍摄的意义
  • 专业提供网站建设服务包括做解析视频网站违法莫
  • 天津工程建设协会网站wordpress 自由评论
  • 南同网站建设hr系统管理软件排名
  • 水果网店网站建设策划书做企业形象网站
  • 小清新博客网站软件公司有哪些部门
  • 企业网站托管一年多少钱想学电商运营在哪里学
  • 网站建设自评报告手机电商平台怎么做的
  • 安阳网站建设优化免费的免抠图素材网站
  • 网站主机有什么用seo网站课程
  • 网站关键词优化软件网站的二次开发
  • 网站建设技术服务费怎么入账杭州网站推广与优化
  • 咨询类网站建设方案书重庆360网络推广
  • 简单网站模板下载wordpress调用数据库字段
  • 万网空间最多放几个网站好的网站首页的特点
  • .net做网站安全吗wordpress取消邮件验证
  • 沈阳做网站推广唐山网站怎么做seo
  • 网站备案说主体已注销刷关键词指数