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

游戏网站建设的策划书北京工商登记服务平台

游戏网站建设的策划书,北京工商登记服务平台,做网站需要招什么职位,群晖wordpress去掉为了解决多个进程同时操作一个文件#xff0c;产生一些情况#xff0c;通常对文件进行上锁#xff0c;已解决对共享文件的竞争 对打开文件进行各种操作#xff1a; int fcentl(int fd, int cmd, .../*arg*/如果cmd与锁操作有关#xff0c;那么fcentl函数的第三个参数就要…为了解决多个进程同时操作一个文件产生一些情况通常对文件进行上锁已解决对共享文件的竞争 对打开文件进行各种操作 int fcentl(int fd, int cmd, .../*arg*/如果cmd与锁操作有关那么fcentl函数的第三个参数就要传入一个结构体 其中结构体如下 struct flock {...short l_type; /* Type of lock: F_RDLCK,F_WRLCK, F_UNLCK */short l_whence; /* How to interpret l_start:SEEK_SET, SEEK_CUR, SEEK_END */off_t l_start; /* Starting offset for lock */off_t l_len; /* Number of bytes to lock */pid_t l_pid; /* PID of process blocking our lock(F_GETLK only) */...}; 利用fcntl函数解决两个终端同时写访问一个文件产生的竞争问题 #include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include stdlib.h #include sys/file.h int lock_set(int fd, int type){struct flock old_lock, lock;lock.l_whence SEEK_SET; //加锁区域为文件开始处 lock.l_start 0;//加锁区域在文件位置的相对偏移量 lock.l_len 0;//加锁区域长度 lock.l_type type;//锁的类型 lock.l_pid -1;fcntl(fd, F_GETLK, lock);//写入if(lock.l_type ! F_UNLCK){//若未解锁 if(lock.l_type F_RDLCK){//读取锁 printf(Read lock already set by %d\n, lock.l_pid);}else if(lock.l_type F_WRLCK){printf(Write lock already set by %d\n, lock.l_pid);} } /*上述可能由于不是解锁状态l_type被设置成了相应的锁值下方进行上锁操作时要再次调用type*/ lock.l_type type;if((fcntl(fd, F_SETLKW, lock)) 0){//上锁失败 printf(Lock failed:type %d\n, lock.l_type);return -1;}switch(lock.l_type){case F_RELCK:printf(Read lock set by %d\n, getpid());//获取当前进程的IDbreak;case F_WRLCK:printf(Write lock set by %d\n, getpid());break;case F_UNLCK:printf(Release lock by %d\n, getpid());//解锁返回1 return 1;break; }return 0;//上锁返回0 }int main(int argc, const char * argv[]){int fd;if((fd open(test.txt, O_RDWR)) 0){printf(open error\n);return -1;}lock_set(fd, F_WRLCK);//设置写入锁getchar();//等待响应 lock_set(fd, F_UNLCK);//解锁getchar();close(fd);return 0; }为了更好演示将写访问改成读访问读访问可以多进程同时进行 #include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include stdlib.h #include sys/file.h int lock_set(int fd, int type){struct flock old_lock, lock;lock.l_whence SEEK_SET; //加锁区域为文件开始处 lock.l_start 0;//加锁区域在文件位置的相对偏移量 lock.l_len 0;//加锁区域长度 lock.l_type type;//锁的类型 lock.l_pid -1;fcntl(fd, F_GETLK, lock);//写入if(lock.l_type ! F_UNLCK){//若未解锁 if(lock.l_type F_RDLCK){//读取锁 printf(Read lock already set by %d\n, lock.l_pid);}else if(lock.l_type F_WRLCK){printf(Write lock already set by %d\n, lock.l_pid);} } /*上述可能由于不是解锁状态l_type被设置成了相应的锁值下方进行上锁操作时要再次调用type*/ lock.l_type type;if((fcntl(fd, F_SETLKW, lock)) 0){//上锁失败 printf(Lock failed:type %d\n, lock.l_type);return -1;}switch(lock.l_type){case F_RELCK:printf(Read lock set by %d\n, getpid());//获取当前进程的IDbreak;case F_WRLCK:printf(Write lock set by %d\n, getpid());break;case F_UNLCK:printf(Release lock by %d\n, getpid());//解锁返回1 return 1;break; }return 0;//上锁返回0 }int main(int argc, const char * argv[]){int fd;if((fd open(test.txt, O_RDWR)) 0){printf(open error\n);return -1;}lock_set(fd, F_WRLCK);//设置写入锁getchar();//等待响应 lock_set(fd, F_RDLCK);//解锁getchar();close(fd);return 0; }效果两进程一起访问 c语言strlen与sizeof函数的区别: char a[32] a[32] abcd; strlen(a) 4; sizeof(a) 32;
http://www.tj-hxxt.cn/news/230736.html

相关文章:

  • 做网站jijianjianzhan一般网站模块
  • 宁波网站建设运营织梦网站名称
  • 外贸仿牌网站微信公众号创建流程
  • p2p网站建设制作wordpress需要懂什么
  • 佛山市外贸网站建设价格中建集团的重要事件
  • 网站规划书包括哪些方面wordpress个性化
  • 网站创建知识海康域名网站
  • 崇义网站建设公众号登录入口在哪
  • 网站如何去分析windos 下做网站工具
  • 找i满洲做卖房广告不收费的网站网页设计需要学什么语言
  • 泰安网站开发制作公司规划院网站建设书
  • 网站开发与iso9001关系怎么做网站编程
  • 呼和浩特 的网站建设网站建设优化过程中的优化策略
  • 网站开发方向wordpress活动插件
  • 动力启航做网站校园网站建设素材
  • 世纪兴网站建设wordpress怎么放图片不显示
  • 海口免费自助建站模板淘宝关键词优化推广排名
  • 东莞高端网站建设哪个好wordpress侧栏导航栏
  • 网站开发代做东营建设网站公司电话
  • 网站建设的软件是哪个品牌推广策略包括哪些内容
  • 有什么网站可以自己做书网站首页做的好看
  • 电商型网站是否是趋势wordpress网站入口
  • 合肥网站营销网页制作中的常见问题
  • 西安网站建设开发熊掌号临沂网站哪家好
  • 网站开发小组wordpress管理员手册
  • 黄岩建设局台州网站建设为什么不用wordpress
  • 如何安装网站百度关键词搜索量查询
  • 上海网站建设流程青海建设厅的门户网站
  • 专门做讲座的英语网站手把手教你用动易做网站
  • 成都网站建设07fly网络维护管理