linux下C的一些开发技巧总结
1、判断本机是32位还是64位:
(sizeof(long) == 8) ? 64 : 32;
2、设置当前进程的最大文件描述符限制:
/*http://www.cnblogs.com/niocai/archive/2012/04/01/2428128.html
*设定资源使用限制。每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,
* 硬限制是软限制的最大值。非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,
* 同时能不可逆转地降低其硬限制。授权进程可以任意改变其软硬限制。
*RLIM_INFINITY的值表示不对资源限制
*下面的函数将当前进程的描述符修改为iMaxNum,如果当前的描述符最大值已经超过了iMaxNum就不再修改;
*如果iMaxNum大于原来的描述符限制值,则采用试探的方式进行设置
*----------by jason.hou*/
void setFileOperaterNum(int iMaxNum, int iStep) {rlim_t maxfiles = iMaxNum;struct rlimit limit;if (getrlimit(RLIMIT_NOFILE,&limit) == -1) {printf("Unable to obtain the current NOFILE limit (%s), assuming 1024 ", strerror(errno));} else {rlim_t oldlimit = limit.rlim_cur;if (oldlimit < maxfiles) {rlim_t f; f = maxfiles;while(f > oldlimit) {limit.rlim_cur = f;limit.rlim_max = f;if (setrlimit(RLIMIT_NOFILE,&limit) != -1) break;f -= iStep;}}}
}
3、创建守护进程
void daemonize(void) {int fd;if (fork() != 0) exit(0); /* parent exits */setsid(); /* create a new session */if ((fd = open("/dev/null", O_RDWR, 0)) != -1) {dup2(fd, STDIN_FILENO);dup2(fd, STDOUT_FILENO);dup2(fd, STDERR_FILENO);if (fd > STDERR_FILENO) close(fd);}
}
linux下C的一些开发技巧总结相关推荐
- Ubuntu Linux下如何配置Android开发环境
下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...
- linux下gdb调试方法和技巧详解
linux下gdb调试方法和技巧整理 简介 UNIX或者UNIX-like下调试工具 启动gdb # 1. 在可执行程序不需要输入参数时,我们可以使用 gdb + 可执行程序 gdb ./typeid ...
- Linux 下搭建 Java Web 开发环境
Linux 下搭建 Java Web 开发环境 我的小站.Github Java Web,是用Java技术来解决相关web互联网领域的技术栈,下方为 Linux 下搭建 Java Web 开发环境教程 ...
- linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程
LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...
- 在linux下搭建git环境,在linux下搭建git github开发环境
在linux下搭建git github开发环境 github git linux 1.安装git sudo apt-getinstall git 2.Generating SSH keys 2.1.g ...
- 第4章 Linux下的C语言开发基础
第4章 Linux下的C语言开发基础 4.1 C语言开发的基本步骤 C语言源程序开发的基本步骤如下: 根据项目需求划分功能模块 编辑.利用文本编辑器vi或gedit编写C源程序并保存,文件的后缀为.c ...
- Linux下搭建Cortex-M嵌入式开发环境
Linux下搭建Cortex-M嵌入式开发环境 终于换上了Linux,更换之前考虑良久,最后选定了Ubuntu15(PS:自己家里用的是Fedora),主要是考虑Ubuntu确实更易用(但明显没有De ...
- linux网卡驱动开发视频,Linux下网卡驱动程序的开发.doc
Linux下网卡驱动程序的开发 论文题目:Linux下网卡驱动程序的开发 专 业: 年 级: 学生学号: 学生姓名: 指导教师: 完成时间: Linux下网卡驱动程序的开发 八年经验 专业指导毕业设计 ...
- Linux下LED设备驱动开发(LED灯实现闪烁)
文章目录 一.配置连接说明 二.更新设备树 (1)将led灯引脚添加到pinctrl子系统 (2)设备树中添加LDE灯的设备树节点 (3)编译更新设备树 三.驱动开发与测试 (1)编写设备驱动代码 ( ...
最新文章
- 龙果支付 mysql_龙果支付系统搭建与部署
- [原创]一起来做网页游戏---前言
- 2879: [Noi2012]美食节
- bzoj 2007 [Noi2010]海拔——最小割转最短路
- 八、操作系统——基本分页存储管理的基本概念(详解)
- 在Windows上创建CUDA C程序
- 开发技术理论学习与实践的关系
- javaScript的字符串对象
- 网页标题设计原则与一般规律
- linux mysql 数据按表名称备份
- 阻塞io阻塞io_面试官:直接IO、缓存IO、阻塞与同步?
- 安装flash player提示版本不是最新,无法安装
- Stata数据处理:清洗中国城市建设统计年鉴
- xu2w显示屏软件下载_LED BEST(LED显示屏控制软件) V2.8 官方版
- python超链接程序,python超链接
- cmd配网关_win7下用DOS命令修改IP、网关和DNS
- Unity组件:Lens Flare 镜头光晕
- java算球体积的代码_java - 球体体积法不起作用 - 堆栈内存溢出
- TransCad导入Excel中的OD矩阵和PA数据
- b站路飞学城python课梨视频项目代码
热门文章
- day5 Java中的方法与重载
- Java基本数据类型的转换
- 仿qq邮箱源码程序_小伙子利用C++实现邮件程序发送和接收
- java web 添加超链接_Javaweb 超链接后显示问题
- 大工13秋《计算机文化基础》在线测试1,大工13秋《计算机文化基础》辅导资料六...
- matlab 图像读取长宽_计算机视觉学习笔记1 图像读取显示和尺寸变换
- 科学计算机fix sci,计算器按mode出来的comp、SD、REG、DEg、Rad、Gra、Fix、Sci、Norm、Disp、是什么意思?...
- matlab衰减指数的程序是,衰减方程的数值计算程序(matlab和fortran)
- 批量导入时间oracle excel,读取Excel数据、批量导入到Oracle数据库
- html框架里面怎么填写内容_还不会Python高级框架?进来,速学