您的位置:首页 > 运维架构 > Linux

【视频】 Linux高级程序设计01.2开发平台及Linux环境限制

2016-07-16 11:17 483 查看
【课程笔记】

Linux环境限制

遵循规范,使用现有资源,明确系统限制,增量开发。

(1)规范问题

编码的规范,让程序更易读。Linux编码规范。

“见着如意”:变量,函数命名等能够让人看到名称就知道大概的用处和功能。

另外各个单词间全用下划线,全部用小写。

user_count

“层次清楚”:代码各个模块逻辑要清楚,多用子函数,多用空行来间隔。

一般不建议一个函数的代码行数超过80行;

(2)库的使用

printf这是一个库函数。加快开发的进度。

头文件:.h,里面是函数及变量的声明。#include <stdio.h>,Linux下默认的头文件搜索路径:

系统定义的头文件:

/usr/include

/usr/local/include

/usr/target/include

自己定义的头文件路径,默认在执行这个程序的路径,即当前

库文件:

/lib (是别人已经开发好的函数编译的目标文件,可重定位的。)

C函数库。

math库

编译时默认链接c库,如果要使用其他的库,编译时要 -l,例如:

gcc test.c -o test -lm -lc

ldd 看可执行文件 包含哪些 库文件

ldd ./test

(3)系统限制

本身平台的类型,32位的平台?64位平台?理解

数据类型的限制:

limits.h

ls /usr/include/limits.h

cat /usr/include/limits.h # 这里面列出了常见的系统限制,如int类型范围,uint类型范围等;

float.h

系统本身的限制:

系统的资源是有限制的,不可能无限制的申请资源。

命令行:ulimit 来修改和获取。

编程时:getrlimit()函数来获取,setrlimit()来设置系统的限制

man getrlimit

RLIMIT_CORE:core文件的最大字节数。core文件是系统在某个进程出现异常退出时,系统为其保存的

上下文信息,在调试程序时经常要用。

RLIMIT_CPU:CPU时间的最大值(秒);

RLIMIT_DATA:一个进程数据段的最大字节数;

RLIMIT_FSIZE:可创建文件的大小的最大值;

RLIMIT_NOFILE:每个进程可以打开的文件的个数;

RLIMIT_STACK:进程栈空间的最大值,使系统不会自动的动态修改这个限制;

RLIMIT_VMEM:虚拟地址空间的最大值;

RLIMIT_AS:系统进程可用内存空间最大值;

RLIMIT_FSIZE FCHR_MAX

RLIMIT_NOFILE OPEN_MAX
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: