知识杂项记录

本文介绍了一个C程序启动时进行的初始化操作,包括设置本地字符支持、工作目录定位及转换为守护进程等步骤,并概述了如何通过Boost库处理线程与网络数据收发,以及使用TCMalloc进行内存管理的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



构造函数:
1,设置文件支持本地字符
2, 定位工作目录到可执行程序所在目录 
readlink("/proc/self/exe"...) exe是一个链接文件 readlink读它所链接的位置 exe可以找到当前进程的可执行文件的位置
getcwd() 获取当前路径
chdir() 切换工作目录
3, 如果没有定义调试模式 设置为后台服务 fork() setsid() umask()
4, 加载插件处理模块 dlopen() dlsym()
5, 绑定信号处理程序 struct sigaction   sigemptyset() sigaddset() signal()


return :退出当前函数
exit :清理后退出程序
_exit :直接退出程序

开源项目中的成熟框架, 模块, 接口, 类, 代码实现
线程和网络数据收发使用boost库中的技术
内存管理,使用google的开源库 tcmalloc

守护进程创建:
1, fork()
2, setsid()
3, fork()
4, 关闭打开的文件描述符
5, chdir()
6, umask

定义导出接口头文件:
#ifdef JJK_EXPORTS
#ifdef _LINUX
#define API __attribute__((visibility("default")))
#define CLASS __attribute__((visibility("default")))
#elif _WINDOWS
#define API __declspec(dllexport)
#define CLASS __declspec(dllexport)
#else
#error Invalid platform
#endif
#else
#ifdef _LINUX
#define API
#define CLASS
#elif _WINDOWS
#define API __declspec(dllimport)
#define CLASS __declspec(dllimport)
#else
#error Invalid platform
#endif
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值