智慧型家居實訓第四天 多執行緒

2021-08-31 09:14:47 字數 2116 閱讀 9096

***************=執行緒********************====

在單個程式中同時執行多個執行緒完成不同的工作,稱為多執行緒。

1.執行緒的建立  pthread_create

#include

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,

void *(*start_routine) (void *), void *arg);

返回值:成功   返回乙個0

失敗   返回 指標或者錯誤碼

引數:pthread_t *thread                 執行緒的識別號

const pthread_attr_t *attr        執行緒的屬性,一般設定null

void *(*start_routine)(void *)    執行緒實現的函式  void()

void *arg                         執行緒函式的引數 一般設定為null

例子: 常規 get_x_y(&x,&y);

get_x_y(),(&x,&y)

2.執行緒的退出:pthread_exit

#include

void pthread_exit(void *retval);

引數:void *retval      執行緒退出時候的值

3.**執行緒:pthread_join

#include

int pthread_join(pthread_t thread, void **retval);

返回值:成功  返回 0

失敗  返回 錯誤碼

引數:pthread_t thread      執行緒的識別號       

void **retval         執行緒的返回值  null         

***************===linux當中的時間程式設計**********==

1.獲取系統時間格式 time()

#include

time_t time(time_t *tloc);

引數:time_t *tloc

----》將獲取到的系統時間儲存到該變數中

將time函式獲取的時間轉化為大家熟悉格式(年月日時分秒)

2.獲取系統時間   ctime()

#include

char *ctime(const time_t *timep);

返回值:成功 返回乙個數

失敗 返回 -1 或者 null

引數: const time_t *timep

struct tm

;字串拼接:sprintf

#include

int sprintf(char *str, const char *format, ...);

變參函式

引數:char *str          字串儲存空間

const char *format  字串鏈結格式

編譯錯誤:

/tmp/ccxqmifu.o: in function `main':

pthread.c:(.text+0xfa): undefined reference to `pthread_create'

pthread.c:(.text+0x138): undefined reference to `pthread_join'

collect2: ld returned 1 exit status

解決辦法:

鏈結庫:-l 

本地編譯:gcc pthread.c -o pthread -lpthread

arm開發板:arm-linux-gcc pthread.c -o pthread -lpthread

***************===電子相簿***************==

1.歡迎介面一張,主介面一張,手動翻頁一張,自動翻頁一張

2.要求:2.1歡迎介面延時5秒顯示主介面

2.2主介面有兩個子選單:分別為手動和自動(4張圖)

2.3子選單都要能返回主介面

2.4在主介面實時顯示時間  man 3 gmtime  localtime

github源**

暑假實訓第四天

早上6 點多就醒了7點 30分起床,跟往常一樣洗漱完後喝了包麥片就去實驗室了,早上主要是在寫需求文件,最後乙個小時左右胡老師給我們介紹了如何用 uml建模工具建模 其實我們大致都會一些 o o 中午校隊實驗室剛布好線,吃完午飯馬上就會校隊實驗室關門。下午我們主要的工作是根據胡老師早上講的內容編寫需求...

工程實訓第四天

蘇嵌 專案實戰 毛偉傑 2018.10.11 本人進度及計畫 學習了fifo.alarm等 本日完成情況 本日任務基本完成 本日開發中出現的問題彙總 今天仍然是犯了 病 本日未解決問題 無本日開發收穫 int pipe 檔名 建立乙個無名管道,用於父子程序之間 unlink結束時刪除檔案 alarm...

智慧型家居實訓第三天

練習 翻 最後一行的資料和第一行交換 u盤掛載 步驟 1.把這個u盤插到開發板,最左邊的usb介面 2.使用crt軟體在終端輸入 cd mnt 3.使用ls命令,sd 記憶體卡 udisk u盤 4.進到udisk裡面 cd udisk 5.使用複製命令 cp 檔名 路徑 6.使用cd命令 cd 注...