嵌入式學習筆記(第九天)系統網路續

2021-08-06 07:12:17 字數 1951 閱讀 9333

char *p = strchr(buf, '\n'); 

通過在buf中查詢是否包含有'\n'

ps -a  檢視程序

execl("/usr/bin/gedit"  , "gedit", "./execl.c", null);

引數一:執行檔案的路徑

引數二:要執行的檔名

引數三:檔案執行時的引數

最後乙個引數設定為null

程序的狀態 :就緒狀態,執行狀態,阻塞狀態

env 查詢系統環境變數

程序間的通訊:

無名管道只能用於具有親緣關係的程序間的通訊,建立無名管道的程序結束後,無名管道也被釋放了

有名管道 

p開頭共享記憶體

建立一塊共享記憶體,程式結束後仍然存在

addr = shmat(shmid, null, 0);

引數二:null讓系統自動將共享記憶體關聯到程序合適位置

引數三:0表示讀寫

shm_rdonly:表示唯讀

沒有只寫

失敗:返回值為(void *)-1

取消關聯

shmdt(addr)

將資料拷貝到共享記憶體中

strcpy((char *)addr, pmsg);

sprintf((char*)addr, "%s", pmsg);

memcpy(addr, pmsg, strlen(pmsg));

將資料從共享記憶體中拷貝出來

strcpy(camsg, (char*)addr);

sscanf((char*)addr, "%s", camsg);

memcpy(camsg, addr, 64);

ipcs -m  檢視共享記憶體段

addr = mmap(null, 1024, prot_read|prot_write, map_shared, fd, 0);

null表示讓系統自動對映到記憶體的合適位置

munmap(addr, 1024);

map_failed --> (void *)-1

檔案對映

將檔案的一部分內容對映到記憶體空間,對記憶體的操作,自動更新到檔案中去

ipc 程序間通訊

訊號./a.out & 後台執行 

kill -9 程序號   終止

kill -l 檢視kill

傳送訊號:

kill(getpid(),sigkill);

鬧鐘訊號:

alarm(5);  //sigalrm:結束程式

重複會將之前的鬧鐘取消

sigkill和sigstop不能使用自己的處理方式來處理

ctrl+c: sigint

設定訊號的處理動作

signal(sigint, handle);

signal(sigint, sig_ign); sig_ign 忽略訊號

訊號的處理函式

void handle(int sig)

atoi 字串轉換為整型函式

執行緒:pthread_create

建立執行緒,即建立乙個併發執行的流程,該執行緒從屬於程序,不和程序分離

程序和執行緒間共享所有資源

執行緒鎖 --》互斥量

pthread_mutex_t promutex;

pthread_mutex_lock(&promutex);

pthread_mutex_unlock(&promutex);

將fullsem的值加一

通知所有阻塞等待fullsem的執行緒

sem_post(&fullsem);

sem_wait(&emptysem);

檢查指定訊號量的值,若值大於0,則表示有資源可用,將其值減一,往下執行;若值等於0,則表示沒有資源可用,則阻塞等待,直到有資源可用

聯合體:是一種自定義的資料型別

union semun

;  其整體長度為聯合體內最長的變數長度

學習第九天

怎麼沒有題面?我怎麼知道?換個鏈結吧!向洛谷勢力低頭 我們畫一下這個小螞蟻走出來的圖形,我們就會發現,是乙個類似長城的形狀 這個題,求最大值,我們應該能很容易想到用動態規劃 那麼對於乙個路徑圍成的圖形,我們需要描述的是它的位置和形狀,所以這顯然是個高維的dp 位置很好描述,但是形狀太複雜了,我們怎麼...

python學習 第九天

在下這廂有禮了 爬蟲簡單實現 coding utf 8 import urllib def gethtml url page urllib.urlopen url html page.read returnhtml html gethtml print html l urllib 模組提供了讀取we...

第九天學習日誌

學習日誌 蘇嵌專案實訓 姓名 梁軒齊 日期 2018.7.12 今日學習任務 行列式鍵盤輸入及led顯示 今日任務完成情況 基本完成,但除錯不出來 今日中發現問題彙總 寫 很吃力,基本框架可以寫出,但是,除錯不出來。今日未解決問題 除錯不出 今日開發收穫 學會了程式設計過程中的一些思路,可以進行一些...