原创 Makefile筆記

makefile文件需要被命名爲Makefile, makefile或者GNUmakefile。 執行make命令時,會在當前目錄查找上面3個文件。 如果makefile文件沒有被命名爲上面三種,可以用-f參數指定具體的文件: make

原创 linux平臺開發問題個人總結. 持續更新帖~

1. 如果編譯連接都通過了, 可是運行時卻找不到函數符號了. 錯誤信息: ./a.out: symbol lookup error: ./a.out: undefined symbol: xxx() 錯誤原因: 請注意你的目標文件是否存在

原创 請遵守好的編程風格 -- 關於.h文件去寫函數的具體實現

今天往工程裏添加Log.h和Log.cpp這用來打印log的文件時, 編譯報錯誤.  Log.cpp裏的一些函數調用func1(), func2(), funcXXX()找不到實現, 可是那些函數明明在公共的接口庫xxx.h和xxx.cp

原创 The Constrained Application Protocol (CoAP)協議翻譯

Abstract CoAP是專門用於受限節點(通常配備8位的微處理器和很小的RAM&ROM)和受限網絡(低功耗有損網絡,如6LowPAN)的網絡傳輸協議。用於IoT/M2M領域。 CoAP消息使用請求/迴應模型。支持內建的服務和資源發現

原创 TCP連接探測中的Keepalive和心跳包. 關鍵字: tcp keepalive, 心跳, 保活

1. TCP保活的必要性 1) 很多防火牆等對於空閒socket自動關閉 2) 對於非正常斷開, 服務器並不能檢測到. 爲了回收資源, 必須提供一種檢測機制. 2. 導致TCP斷連的因素 如果網絡正常, socket也通過close操作

原创 linux多播常見問題解決辦法

1、組播和廣播需要在局域網內才能實現,另外得查看linux系統是否支持多播和廣播:ifconfig  UP BROADCAST MULTICAST MTU:1500 躍點數:1 說明該網卡支持  2、發

原创 關於C語言程序的編碼問題介紹

轉來的, 有點亂, 先留着吧... --------------------------------------------------------------------------------------- 我們傳統的程序基本都

原创 nrf51822開發問題彙總【持續添加】

下載程序時出錯 --> * JLink Info: Could not measure total IR len. TDO is constant high. 解決辦法:option -> debug -> settings -> deb

原创 socket爲send和recv設置超時時間

linux和windows下用setsockopt設置SO_SNDTIMEO,SO_RCVTIMEO的參數的一點區別   UDP的socket在某些情況:如對方關閉時,本地可能sendto不出去數據,然後recvfrom就會被阻塞,這

原创 在0~N(不包括N)範圍內隨機生成一個長度爲M(M <= N)且內容不重複的數組

PS: 代碼涉及的隨機函數和一些容器雖然是C++的, 但算法是通用的, 這些容器java等其它語言裏也都能找到類似的存在. 1. 最樸素暴力的做法. void cal1() { int i = 0, j = 0, num = 0; i

原创 top查看cpu

1. Linux下,如何看每個CPU的使用率: #top -d 1 (此時會顯示以1s的頻率刷新系統負載顯示,可以看到總的CPU的負載情況,以及佔CPU最高的進程id,進程名字等信息) (切換按下數字1,則可以在顯示多個CPU和總

原创 Linux編程環境介紹(3) -- linux下的c/c++程序開發

目錄: 1. 編輯器( Vi ) 【vi 與 vim】vi(visual interface)是linux系統最重要的文本編輯器, 所有的 Unix-Like 系統都會內置vi文本編輯器. vim則是從 vi 發展出來的. 它完全兼容v

原创 Linux編程環境介紹(0) -- 前言

這個系列一共三章, 比較寬泛地介紹了linux系統下的編程環境, 講述了該系統的發展歷程, 以及linux系統下程序開發必須掌握的一些知識和工具.  文章介紹了linux平臺的一些最基礎的知識, 旨在對linux系統下的開發環境有個大體的

原创 Valgrind 使用

http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/

原创 c++ string和wstring互相轉化

先立個帖, 慢慢記錄. wstring --> string: wstring ws = L"hello"; string s(ws.begin(), ws.end()); //上面的構造函數等價於assign函數, 其實就是strin