常见C/C++后台服务器启动流程
来源:互联网 发布:网络策略游戏 编辑:程序博客网 时间:2024/06/03 17:21
服务器程序一般在后台运行,所以在启动的时候一般都会使用daemon函数让程序在后台执行。其次为了防止进程被多次运行造成数据的不一致,服务器进程都是排他执行的,这里用到了文件锁函数flock,当一个打开的文件句柄被flock锁住,再次启动程序的时候再调用flock尝试加锁是不成功的,这样就达到了我们程序的排他运行。下面上代码:main.cpp代码如下:#include<sys/file.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include <unistd.h>#include<stdio.h>#include <string.h>int main(int argc,char **argv){ int ret, fd; if (argc == 2) { if (strcmp(argv[1], "-d") == 0) daemon(1,1); } fd = open("main", O_RDONLY); if(fd < 0) { printf("open error fd(%d)\n",fd); return -1; } ret = flock(fd, LOCK_EX|LOCK_NB); if(ret != 0) { printf("main was alread running\n"); close(fd); return -1; } //以下是写的服务器应该要做的具体业务,包括socket监听,以及创建工作线程的逻辑,这里测试就只写了个while循环 while(1) { sleep(1); } ret = close(fd);}
阅读全文
0 0
- 常见C/C++后台服务器启动流程
- Skynet服务器框架(二) C源码剖析启动流程
- Android 启动流程: Init.c 阅读笔记
- Android 启动流程: Init.c 阅读笔记
- Android 启动流程: Init.c 阅读笔记 .
- Uboot 启动流程分析:启动阶段2 board.c
- 服务器启动流程
- C#.NET后台读取服务器文件名称,并下载到本地
- C语言 Web实时消息后台服务器推送技术---GoEasy
- linux C/C++服务器后台开发面试题总结
- linux C/C++服务器后台开发面试题总结
- linux C/C++服务器后台开发面试题总结
- linux C/C++服务器后台开发面试题总结
- linux C/C++服务器后台开发面试题总结
- C/C++--常见错误
- 常见SOC启动流程分析
- 后台方式启动weblogic服务器
- zz-am335x-LinuxKernel启动流程初始化141221c
- redis下的错误WRONGTYPE Operation against a key holding the wrong kind of value
- Redis在windows下安装过程
- Linux 字符设备驱动
- 固态硬盘高低温测试方法
- 找不到 Microsoft Excel Driver ODBC 驱动程序的安装例程 解决方案
- 常见C/C++后台服务器启动流程
- CNN卷积神经网络(二)
- TCP/IP相关介绍(一)
- Linux 设备驱动中的并发控制
- foxmail客户端下gmail设置
- 【原创】【KM算法】POJ 2516 Minimum cost(拆点+多次KM)
- Yaf 学习记录(2)
- scala安装过程中需要注意的问题
- Sift特征点匹配过程