【阅读笔记】《C程序员 从校园到职场》第六章 配置文件,makefile 文件 (Part 2)
Contents:
1.配置文件(通常以 ini 结尾)
2.makefile文件 (Linux)
PS: 这篇文章的内容,不太理解。
一、配置文件
本文以一个实际的小软件为例,介绍了C语言中配置文件的读取方法和重要的文件操作函数的使用方法,为相关软件开发项目提供了有益的参考
参考链接:让你提前认识软件开发(12):配置文件读取及文件操作
CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/23552667
2.4本文中使用的读取配置操作函数
本文中使用的读取配置操作函数为GetPrivateProfileInt 和 GetPrivateProfileString,对它们的详细说明如下:
(1) GetPrivateProfileInt 函数
作用:从配置文件中读取一个值,并将结果转换为整型数据后保存到变量中。
原型:UINT GetPrivateProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nDefault, LPCTSTR lpFileName);
各参数的意义:
1) lpAppName:配置文件中的大项,用[]括起来的部分(如2.3节的红色字体所示)。
2) lpKeyName:各大项下小项的字段名称,如2.3节中General下的LocalPath。
3) nDefault:如果配置文件中没有这个配置项,那么代码中取的默认值。
4) lpFileName:配置文件名,如本文中的Config.ini。
举例:如本程序要获取MsgCount的值,则代码如下:
int iMsgCount = 0;
iMsgCount = GetPrivateProfileInt("EmployeeInfo", "MsgCount", 0, “Config.ini”);
(2) GetPrivateProfileString 函数
作用:从配置文件中读取一个值,并将结果转换为字符串型数据后保存到变量中。
原型:DWORD GetPrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR lpReturnedString, DWORD nSize, LPCTSTR lpFileName);
各参数的意义:
1) lpAppName:配置文件中的大项,用[]括起来的部分(如2.3节的红色字体所示)。
2) lpKeyName:各大项下小项的字段名称,如2.3节中General下的LocalPath。
3) lpDefault:如果配置文件中没有这个配置项,那么代码中取的默认值。
4) lpReturnedString:代码中存放读取值的字符数组。
5) nSize:一般为lpReturnedString字符数组的大小。
6) lpFileName:配置文件名,如本文中的Config.ini。
举例:如本程序要获取FilePrefix的值,则代码如下:
char szFilePrefix[100] = {0};
GetPrivateProfileString("General", "FilePrefix", "EmployeeInfo", szFilePrefix, 100, strINIFILE);
2.5本文中使用的FTP操作函数
本文中使用的FTP操作函数为GetFtpConnection和PutFile,对它们的详细说明如下:
(1) GetFtpConnection函数
作用:连接FTP服务器。
原型:CFtpConnection* GetFtpConnection(LPCTSTR pstrServer, LPCTSTR pstrUserName, LPCTSTR pstrPassword, INTERNET_PORT nPort, BOOL bPassive);
各参数的意义:
1) pstrServer:服务名,即FTP服务器的IP地址。
2) pstrUserName:用户名,即登录FTP服务器的用户名。
3) pstrPassword:密码,即登录FTP服务器的密码。
4) nPort:端口号,该参数默认值为INTERNET_INVALID_PORT_NUMBER。
5) bPassive:该项的默认值为FALSE。
(2) PutFile函数
作用:FTP上传文件。
原型:BOOL PutFile(LPCTSTR pstrLocalFile, LPCTSTR pstrRemoteFile, DWORD dwFlags, DWORD_PTR dwContext);
各参数的意义:
1) pstrLocalFile:带存放路径的本地文件名。
2) pstrRemoteFile:带存放路径的远端文件名,即文件存放在FTP服务器的何处。
3) dwFlags:标识,该项取默认值FTP_TRANSFER_TYPE_BINARY。
4) dwContext:上下文标识,该项取默认值1
二、Makefile文件
makefile用于Linux下整个工程的编译,对于Linux下的C/C++语言的编译是至关重要的。
本文以实际的C源程序为例子,介绍如何使用makefile来编译Linux下的C语言工程,为相关开发工作的开展提供了参考。
【关键词】
makefile C语言 Linux 编译 开发
1、什么是makefile?
makefile是什么?如果你写的程序只是在Windows下运行,那么很有可能不知道有这个玩意儿。而如果你要在Linux下编译并运行程序,那么你几乎不可避免地要和makefile打交道。
makefile是一个文件,里面定义了一系列的规则来指定一个工程中的哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更为复杂的功能操作。简单点说,makefile就是Linux下的一个编译调度器。
2、makefile的语法规则
既然是一个编译调度器,那么它就会有自己的一套规则。makefile的规则如下:
target ... : prerequisites ...
command
说明:
(1) target就是一个目标文件,也就是在这个步骤中,我们想要输出的文件名(可以包括后缀)。
(2) prerequisites是要生成那个target所需要的文件,相当于在Windows工程下我们要得到exe文件所需要的源代码文件。
(3) command是make需要执行的命令,也就是如何利用prerequisites来生成target。注意,command行要以TAB键开头。
3-5、以一个实际的Linux下的C程序工程(将一个字符串中的小写字母转换成大写字母)为例,介绍makefile的编写方法及用法。
参考:让你提前认识软件开发(17):makefile文件的书写及应用
CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/24812071
6、总结
本文对makefile文件的语法规则进行了介绍,并用一个实际的C程序工程来说明了它的用法。
在编写和使用makefile文件的过程中,我们要注意以下问题:
(1) 要牢记makefile的语法,将不同程序文件的依赖关系理清楚。
(2) 命令(command)行一定要以TAB键开头,不要误写成了空格。
(3) 在makefile文件的最后,要将没有用的中间文件(如本例中的.o文件)清理掉。
(4) 对于make命令中出现的错误或警告,一定要尽量修改。
【阅读笔记】《C程序员 从校园到职场》第六章 配置文件,makefile 文件 (Part 2)的更多相关文章
- 【阅读笔记】《C程序员 从校园到职场》第二章 学校到职场
一.代码规范: 1.变量命名(让人一眼看它是什么意思,要做什么操作),定义并初始化 2.函数命名规范(函数的功能)在主函数之前进行声明. 在实际项目中,一般不在函数调用者的内部来对被调函数进行声明,而 ...
- 【阅读笔记】《C程序员 从校园到职场》第七章 指针和结构体
原文地址:让你提前认识软件开发(13):指针及结构体的使用 CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/2387299 ...
- 【阅读笔记】《C程序员 从校园到职场》第三章 程序的样式(大括号)
参考: https://blog.csdn.net/zhouzhaoxiong1227/article/details/22820533 一..初始化数组变量 在实际的软件开发项目中,变量在使用前应初 ...
- 【阅读笔记】《C程序员 从校园到职场》第八章 算法和协议(Part 2)
原文链接: 让你提前认识软件开发(19):C语言中的协议及单元测试示例 CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/2 ...
- 【阅读笔记】《C程序员 从校园到职场》第五章 内存操作
参考: 让你提前认识软件开发(8):memset()与memcpy()函数 https://blog.csdn.net/zhouzxi/article/details/22478081 让你提前 ...
- 【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)
参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结 ...
- 【阅读笔记】《C程序员 从校园到职场》第四章 变量和函数
参考: Contents: 一.数据类型(对基本数据类型进行重定义——规范化) 二.变量和函数 (命名规则,注意事项) 三.静态变量及其使用 一.数据类型(对基本数据类型进行重定义——规范化) 1. ...
- 《C程序猿从校园到职场》带领大家从校园走向职场
七夕节刚过.就有好消息传来:本人新书<C程序猿从校园到职场>正式出版并在各大电商平台上发售了! 以下.让我们一起来赞赏一下纸质书的"风採"吧. 本书文件夹 第1章 概述 ...
- 《C程序猿从校园到职场》勘误
(本人正在參加2015博客之星评选.诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candida ...
随机推荐
- Cocos Creator cc.Node.点击事件
触摸事件 1.触摸事件的类型:START触摸启动,MOVED移动,ENDED弹起来,CANCEL取消; ENDED和CANCEL区别是ENDED物体内弹起来,CANCEL是在物体外范围弹起. 2.监听 ...
- HDU 2586 How far away(LCA+邻接表)
How far away &题解: 和上篇是一样的题,这用的是lca方法做的, 不知道为什么,把数组开到80000 就a了 >_< 哈 我现在知道为什么了,因为我的rmq数组没有乘 ...
- 记mysql中时间相关的一个奇怪问题
发现mysql中类型为时间的字段,在查询时显示的时间是什么是依赖于客户端的,不同的客户端查同一个时间,可能在客户端显示的时间是不一样的.至于这个在哪里配置,以及服务端如何依据这个配置为客户端返回结果, ...
- Python实现链表
1.1实现单向链表 #链表结构分成2部分 head,tail #('a',('b',('c',none))) #迭代时候 Head is a ;;;; tail is ('b',('c',none)) ...
- [openjudge-搜索]单词接龙
题目描述 描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙&q ...
- Python 进程之间共享数据
最近遇到多进程共享数据的问题,到网上查了有几篇博客写的蛮好的,记录下来方便以后查看. 一.Python multiprocessing 跨进程对象共享 在mp库当中,跨进程对象共享有三种方式,第一种 ...
- CentOS安装系统安装完成
一.安装centOS操作系统的相关步骤? 1)第一步:系统安装的方式,选择全新安装,第一行表示安装系统,第三行当用户名密码无法开机或密码忘记的时候启动 2)第二步:是否检查光盘,选择Skip跳过,没事 ...
- bzoj2091: [Poi2010]The Minima Game DP
2091: [Poi2010]The Minima Game DP 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2091 思路 这类问题好迷 ...
- Globecom 2018 投稿过程
Globecom 2018 投稿过程 IEEE 通信领域旗舰型会议 Globecom 2018 将于近日提交 Camera-Ready 稿件.回顾今年投稿过程,虽麻烦不断但也不算特别曲折,本篇随笔记录 ...
- 【Python】【自动化测试】【pytest】
https://docs.pytest.org/en/latest/getting-started.html#create-your-first-test http://www.testclass.n ...