【视频】 Linux高级程序设计01.2开发平台及Linux环境限制
【课程笔记】
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
【视频】 Linux高级程序设计01.2开发平台及Linux环境限制的更多相关文章
- 【视频】Linux高级程序设计01.1开发工具及gcc gdb
[课程笔记] Linux 下编辑调试工具,gcc,gdb. 把高级语言编译成二进制可执行代码的工具. 需要经历四个步骤: (1) 预处理:去掉注释,进行宏替换(#define相关),头文件(#incl ...
- 【视频】Linux高级程序设计01.3命令行选项及参数
[课程笔记] [命令行参数] 选项:-l -a -i 参数:-l /home main 函数形式: int main(int argc, char *argv[]) main函数是有参数的,而且有返回 ...
- 【linux高级程序设计】(第十章)Linux异步信号处理机制 3
信号屏蔽 信号忽略:系统仍然传递该信号,只是相应的进程不做任何处理 信号屏蔽:进程不捕获信号,信号处于未决状态,当不再屏蔽信号时可以捕获之前被屏蔽的信号. 信号集数据结构定义: typedef __s ...
- 【5集iCore3_ADP演示视频】5-4 iCore3与应用开发平台的组装与拆卸
iCore3双核心应用开发平台基于iCore3双核心板,包含ARM.FPGA.7寸液晶屏.双通道数字示波器.任意波发生器.电压表等模块,是一款专为电子爱好者设计的综合性电子学习系统. [视频简介]本视 ...
- linux下怎么安装Go开发环境?linux部署golang
linux下怎么安装Go开发环境?linux部署golang 0.请自行安装SSH远程工具 1. SSH远程登录你的linux服务器 2. yum install mercurial安装 me ...
- 由Windows开发平台向Linux平台转移的一些想法
从毕业到现在已经快20年了,一直在从事Windows平台上的开发工作.刚毕业那会大约是97,98年左右,工作的平台除了Windows平台还有Dos平台,因为在学校学习时,也是从Dos开始的.因此对于从 ...
- 【linux高级程序设计】(第八章)进程管理与程序开发 5
守候进程 启动方式: 在系统启动时由/etc/rd.d目录下的启动脚本启动 利用inetd超级服务器启动 有cron命令定时启动,以及在终端用nohup命令启动 守护进程编程要点 (1)屏蔽有关控制终 ...
- Linux高级编程--01.vi命令
VI是Linux/Unix下标配的一个纯字符界面的文本编辑器.由于不支持鼠标功能,也没有图形界面,相关的操作都要通过键盘指令来完成,需要记忆大量命令.因此很多人不大喜欢它,但同时由于键盘的方式往往比鼠 ...
- 【linux高级程序设计】(第十六章)网络服务器应用设计
xinetd服务介绍 xinetd是Linux下的一个网络守候进程,用来统一管理网络负载不大的一组小型网路服务. 一些小型的网络服务,比如时间,telnet服务,不以守候进程出现,而是让xinetd服 ...
随机推荐
- zedboard zynq 学习 sobel 边缘检测 IP核 制作 根据 文档 Xapp890
官方文档http://www.xilinx.com/support/documentation/application_notes/xapp890-zynq-sobel-vivado-hls.pdf ...
- XPS Enable GPIO on EMIO interface 不见了
按照 <嵌入式系统软硬件协同设计实战指南 -- 基于xilinx Zynq>第九章 zedboard 入门 我一步一步做到9.1.2 (13) 发现 没有 Enable GPOI on ...
- HDU 1937 J - Justice League
J - Justice League Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- mac系统安装/升级node
一.安装 1.node 是通过brew来安装的,所以第一步先安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Ho ...
- web服务器集群session同步
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是 ...
- [洛谷P3321][SDOI2015]序列统计
题目大意:给你一个集合$n,m,x,S(S_i\in(0,m],m\leqslant 8000,m\in \rm{prime},n\leqslant10^9)$,求一个长度为$n$的序列$Q$,满足$ ...
- BZOJ 1014 [JSOI2008]火星人prefix | Splay维护哈希值
题目: 题解: #include<cstdio> #include<algorithm> #include<cstring> typedef long long l ...
- 控制属性为multiple的select
需求:实现点击查询,搜索对应渠道已投放.未投放批次.如图: html: <div class="form-inline margin-top-20"> <div ...
- [转]Google 的开源技术protobuf 简介与例子
本文来自CSDN博客:http://blog.csdn.NET/program_think/archive/2009/05/31/4229773.aspx 今天来介绍一下“Protocol Buffe ...
- Linux安转jdk
1. 创建目录 > mkdir /opt/java > cd /opt/java 2. 下载jdk压缩包到上述目录 jdk-8u162-linux-x64.tar.gz 3. 解压缩.建 ...