【閱讀筆記】《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)