Time of Update: 2018-12-05
#ifdef __macos__ #include </usr/local/mysql/include/mysql.h>#endif#ifdef __linux__ #include </usr/include/mysql/mysql.h>#endif============================================================#ifdef __macos__ #include
Time of Update: 2018-12-05
三個檔案,一個標頭檔,一個讀,一個寫,用同一個key值申請共用記憶體。//shm.h#ifndef _SHM_COM_H#define _SHM_COM_H 1#define TEXT_SZ 2048struct shared_use_at{ int written_by_you; char some_text[TEXT_SZ];};struct kts{ int power; int mode; int temp; int windspeed; int write_flag;};#
Time of Update: 2018-12-05
Asio:Improved performance.Reduced compile times.Reduced the size of generated code.Extended the guarantee that background threads don't call user code to all asynchronous operations (#3923).Changed to use edge-triggered epoll on Linux.Changed to use
Time of Update: 2018-12-05
由於很多人總問這個問題,所以這裡做一個總結文檔供大家參考。這裡必須先說明,以下的步驟都是針對Linux系統的,並不面向WinCE。也許你會注意到,現在做嵌入式的人中,做linux研究的人遠比做WinCE的人多,很多產家提供的資料也是以linux為主。我一直很難理解,其實WinCE的介面比linux的介面好看多了,使用起來也很方便,更為重要的是,WinCE的開發和Windows下的開發基本一樣,學起來簡單得多,但是學linux或者使用linux做嵌入式的人就是遠比WinCE多。在和很多工作的人交流
Time of Update: 2018-12-05
1.共用記憶體段的基本概念共用記憶體就是由幾個進程共用一段記憶體地區,可以說是IPC最快形式,因為它無須任何中間操作,它只是把記憶體段直接映射到調用進程的地址空間中。共用記憶體段通訊的使用方式和訊息通訊是類似的。首先用shmget系統調用為進程建立一個共用記憶體段,當需要該共用記憶體時,利用系統調用shmat將申請的共用記憶體段映射到進程的私人空間中,之後進程可以用與訪問其他虛擬位址空間相同的方法對它進行訪問了。多個進程對同一個共用記憶體訪問是互斥的,但互斥控制要與共用記憶體相關聯的所有進程自己
Time of Update: 2018-12-05
1 > 線程和進程的差別線程機制支援並發程式設計技術,在多處理器上能真正保證平行處理。而在linux實現線程很特別,linux把所有的線程都當作線程實現。linux下線程看起來就像普通進程(只是該進程和其他進程共用資源,如地址空間)。上述機制與Microsoft
Time of Update: 2018-12-05
(加#的命令為必須在根使用者許可權下操作) 一、關機與重新啟動1)#init 0重啟 #init 6關機(改變系統運行層級的方法)2)#reboot重啟 #halt關機(命令法)3)#showdown -h +5 (5分鐘後關機) #showdown -r +5(5分鐘後重啟)二、常用目錄操作命令1)顯示檔案和目錄:ls -a -l2) 複製檔案或目錄:cp 源檔案 目的檔案3)移動檔案或目錄:mv 源檔案 目的檔案4)顯示檔案內容:cat 文字檔5)分頁顯示常值內容:more
Time of Update: 2018-12-05
à背景知識介紹 1 互斥量 互斥量函數有 pthread_mutex_init 初始化一個互斥量 pthread_mutex_lock 給一個互斥量加鎖 pthread_mutex_trylock 加鎖,如果失敗不阻塞 pthread_mutex_unlock 解鎖互斥量從本質上說是一把鎖,在訪問共用資源前對互斥量進行加鎖,在訪問完成後釋放互斥量上的鎖。對互斥量進行加鎖以後,任何其他試圖再次對互斥量加鎖的線程將會被阻塞直到當前線程釋放該互斥鎖。 2
Time of Update: 2018-12-05
#include <time.h> time_t time(time_t *calptr) 這是time函數基本架構 指標指向的一串數字達不到毫秒極的資訊。 然後使用以下兩個函數將其進行標準時間轉換 #include <time.h> struct tm *gmtime(const time_t *calptr) /*將其轉換為國際標準時間*/ struct tm *localtime(const
Time of Update: 2018-12-05
一、編譯和串連 一般來說,如果庫的標頭檔不在 /usr/include 目錄中,那麼在編譯的時候需要用 -I參數指定其路徑。由於同一個庫在不同系統上可能位於不同的目錄下,使用者安裝庫的時候也可以將庫安裝在不同的目錄下,所以即使使用同一個庫,由於庫的路徑的不同,造成了用 -I 參數指定的標頭檔的路徑也可能不同,其結果就是造成了編譯命令介面的不統一。如果使用 -L參數,也會造成串連介面的不統一。編譯和串連介面不統一會為庫的使用帶來麻煩。
Time of Update: 2018-12-05
維護Linux的ssh工具在使用中,一旦遇到網路中斷,則當前的shell就會自動關閉當前的工作進度就會丟失,這對於遠程升級等比較耗費時間的工作是非常不利的對於遠程調適代碼也是很不可靠不安全的為此,可以使用screen這個工具來解決這個問題。對於最小化的linux,通常screen是不包含在系統內的。需要尋找作業系統的安裝光碟片,例如對於AS4update4在其中的CD4.iso裡邊可找到screen-4.0.2-5.i386.rpm到伺服器上執行rpm -ivh
Time of Update: 2018-12-05
前面轉載了一篇文章關於core檔案的產生和調試使用的設定,但在使用有一些需要注意的問題,如 在什麼情況 才會正確地產生core檔案。 列出一些常見問題:一,如何使用core檔案1. 使用core檔案在core檔案所在目錄下鍵入:gdb -c core它會啟動GNU的調試器,來調試core檔案,並且會顯示產生此core檔案的程式名,中止此程式的訊號等等。如果你已經知道是由什麼程式產生此core檔案的,比如MyServer崩潰了產生core.12345,那麼用此指令調試:gdb -c
Time of Update: 2018-12-05
在分析LIVE555代碼時 偶獲:if (fIsFirstPacket) { // Record the fact that we're starting to play now: gettimeofday(&fNextSendTime, NULL);
Time of Update: 2018-12-05
http://blog.csdn.net/wangjiannuaa/article/details/6585136#include <stdio.h>#include <stdlib.h>#include <sys/time.h>#include <unistd.h>#include <sys/vfs.h>#include <error.h>#define Gsize (1024.00 * 1024.00 * 1024.00
Time of Update: 2018-12-05
本文介紹藍芽協議棧Bluez在linux中實現HID功能的kernel部分。在linux kernel中,Bluez對HID的實現代碼在/net/bluetooth/hidp檔案夾中,主要包括sock.c,core.c和hidp.h三個檔案。Bluez提供了一個socket介面,使用者空間程式通過使用該socket控制HID。該socket使用的協議編號為BTPROTO_HIDP。1. 初始化HIDP的初始化在sock.c的hidp_init_sockets函數。int __init
Time of Update: 2018-12-05
標頭檔 #include <dlfcn.h> 載入動態庫void *dlopen(const char *filename, int flag);flag的可能值:l RTLD_LAZYl RTLD_NOWl RTLD_GLOBALl RTLD_LOCALl RTLD_NODELETE (since glibc 2.2)l RTLD_NOLOAD (since glibc 2.2)l
Time of Update: 2018-12-05
Linux中的字元裝置驅動中有一個函數unsigned int (*poll)(struct file * fp, struct poll_table_struct * table)此函數在系統調用select內部被使用,作用是把當前的檔案指標掛到裝置內部定義的等待隊列中。這裡的參數table可以不考慮,是在select函數實現過程中的一個內部變數。函數具體實現時: wait_queue_head_t t = ((struct mydev *)filp->private_data)
Time of Update: 2018-12-05
本文介紹Linux2.6.29中,配置高精度模式的hrtimer與未配置高精度模式時行為的區別。本文暫不考慮高精度模式對Linux系統時鐘中斷的影響。 在沒有配置高精度模式時,hrtimer的逾時在系統時鐘中斷的輪循中檢查,所以此時hrtimer的定時精度還是以輪循的間隔為單位,精度與傳統的時間輪定時器一樣。在配置高精度模式後,hrtimer的逾時由struct
Time of Update: 2018-12-05
很久以前整理的,今天偶然看到了,放到網上方便查詢。一、 syslogd和klogdsyslogd與syslog配套使用,主要用於daemon輸出log。Klogd讀/proc/kmsg,儲存的是kernel log。Klogd啟動時有一個-f選項,用於指定儲存kernel log的檔案。如果沒有指定,會發送到syslog,由syslog統一儲存。二、 daemon函數調用daemon函數可用於將程式轉入後台,並斷開與終端的標準輸入輸出串連。daemon(0, 0); //
Time of Update: 2018-12-05
☆★省電or流暢★ ☆root@android:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_available_governorshotplug conservative ondemand userspace powersave interactive performance為了可以對幾種常見的CPU頻率調節模式有個基本的理解,下面簡單的總結了一下,根據不同方式的特點,自己來在效能與省電這兩對矛盾之間做個取捨,找出適合自己的平衡點吧!1、