原创 條件運算符?:
expression1 ? expression2 : expression3 如果expression1爲真(非零),整個條件表達式的值和expression2的值相同。如果expression1爲假(零
原创 QT下觸摸屏和鍵盤接口移植
一、觸摸屏移植 1、安裝及編譯tslib 1.4 將tslib 1.4.tar.ba2複製到/home 目錄下解壓縮 # cd /home/tslib # ./autogen.sh
原创 ubuntu 10.04 usb轉串口
ubuntu 10.04下usb轉串口設置 在安裝好minicom後 1.插入usb轉串口線,佔到對應的串口 yelei@ubuntu:/media$ ls -l /dev/ttyUSB* crw-rw---- 1 root dial
原创 字符串輸出函數 puts( ) fputs( ) printf( )
C語言有三個勇於輸出字符串的標準庫函數 puts( ) fputs( ) printf( ) puts( )函數的使用很簡單,只需要給出字符串參數的地址。注意,每一個字符串都單行顯示,與printf()不同,puts()顯示字符串時自動在
原创 getenv(取得環境變量內容)
表頭文件 #include<stdlib.h>定義函數 char * getenv(const char *name);函數說明 getenv()用來取得參數name環境變量的內容。參數name爲環境變量的名稱,如果該變量存在則會返回指向
原创 Linux串口編程
串口概述常見數據通信方式:並行通信,串行通信UART的主要操作: >數據發送及接受 >產生中斷 >產生波特率 >Loopback模式 >紅外模式 >自動流控模式串口參數的配置主要包括:波特率、數據位、停止位、流控
原创 第十一章 進程和信號(一)
我們可以通過調用fork來創建一個新進程。這個系統調用會複製當前進程,在進程表中創建一個實體,而且與當前進程具有相同的屬性。新進程與原始進程幾乎是相同的,執行相同的代碼,但是具有其自己的數據空間,環境與文件描述符。 #in
原创 基於TCP協議的網絡程序
服務器調用socket()、bind()、listen()完成初始化後,調用accept()阻塞等待,處於監聽端口的狀態,客戶端調用socket()初始化後,調用connect()發出SYN段並阻塞等待服務器應答,服務器應答一個SYN
原创 第十一章 進程和信號(三)
一個健壯的信號接口 我們已經對用 signal 和其相關函數來生成和捕獲信號做了比較深入的介紹,因爲它們在傳統的 Unix 編程中很常見。但 X/Open 與 Unix 規範推薦了一個更新和更健壯的信號編程接口:siga
原创 第十一章 進程和信號(二)
信號 信號是UNIX與Linux系統響應某些條件而產生的一個事件。接收到該信號的進程會相應地採取一些行動。我們用術語(raise)表示一個信號的產生,使用術語(catch)來表示接收到一個信號。信號是由於某些錯誤條件而生成的,
原创 Linux內核Makefile文件
=== 1 概述 === 2 角色分工 === 3 內核編譯文件 --- 3.1 目標定義 --- 3.2 內嵌對象 - obj-y --- 3.3 可加載模塊 - o
原创 第十二章 POSIX 線程(三)
用互斥量進行同步 另一種用在多線程程序中的同步訪問方法是使用互斥量。它允許程序員鎖住某個對象,使得每次只有一個線程訪問它。爲了控制對關鍵代碼的訪問,必須在進入這段代碼之前鎖住一個互斥量,然後在完成操作之後解鎖它。 #in
原创 第十二章 POSIX 線程(一)
在一個程序中的多個執行線路就叫做線程(thread)。更準確的定義是:線程是一個進程內部的一個控制序列。 線程有一套完整的與其相關的函數庫調用,它們中的絕大多數函數名都是以 pthread_ 開頭,爲了使用
原创 第十二章 POSIX 線程(二)
信號量 信號量是一個特殊類型的變量,它可以被增加或減少,但對其的關鍵訪問被保證是原子操作,即使在一個多線程程序中也是如此。這意味着若果一個程序中有兩個(或更多)的線程試圖改變一個信號量的值,系統將保證所有的操作都將依次進行。但
原创 c語言中 static 用法
static在c裏面可以用來修飾變量,也可以用來修飾函數。 一、修飾變量 變量在c裏面可分爲存在全局數據區、棧和堆裏。其實我們平時所說的堆棧是棧而不是堆,不要弄混。 int a ;int main(){ int b ; i