PJLIB的基礎使用 1

2021-10-01 17:45:58 字數 3610 閱讀 5640

#include

#include

#include

// for pj_init.

#define this_file "main.c"

typedef

struct my_node

my_node;

/* 迴圈鍊錶測試

*/void

list_test

(void);

/* 列印迴圈鍊錶資訊

*/void

list_print

(pj_list_type* node)

;int

main

(int argc,

char

** ar**)

// 迴圈鍊錶測試

list_test()

;// pjlib庫關閉

pj_shutdown()

;return0;

}/*

迴圈鍊錶測試

*/void

list_test

(void

)// 列印迴圈鍊錶資訊

list_print

(&list)

;// 刪除鍊錶中的節點

for(i=

0; i<10;

++i)

// 列印迴圈鍊錶資訊

list_print

(&list)

;// 檢查鍊錶是否為空

pj_assert

(pj_list_empty

(&list));

}/*

列印迴圈鍊錶資訊

*/void

list_print

(pj_list_type* node)

}}

#include

#include

#include

// for pj_init.

#define this_file "main.c"

/* 陣列測試

*/void

array_test

(void);

static pj_status_t matching_cb

(const

void

*value)

;int

main

(int argc,

char

** ar**)

// 陣列測試

array_test()

;// pjlib庫關閉

pj_shutdown()

;return0;

}/*

陣列測試

*/void

array_test

(void

)static pj_status_t matching_cb

(const

void

*value)

資料結構之字串的使用:

[cpp] view plaincopy

#include

#include

#include

// for pj_init.

#define this_file "main.c"

/* 字串

struct pj_str_t

; */

/* 字串測試

*/void

string_test

(void);

intmain

(int argc,

char

** ar**)

// 字串測試

string_test()

;// pjlib庫關閉

pj_shutdown()

;return0;

}/*

字串測試

*/void

string_test

(void

)}

#include

#include

#include

// for pj_init.

#define this_file "main.c"

intmain

(int argc,

char

** ar**)

// pjlib建立緩衝池工廠

pj_caching_pool_init

(&ch_pool,

null

,1024

*1024);

/* 分配記憶體示例 */

// 迴圈申請記憶體

// 沒有釋放記憶體的函式!!!

}// 釋放記憶體池

pj_pool_release

(pool);}

// pjlib銷毀緩衝池工廠

pj_caching_pool_destroy

(&ch_pool)

;// pjlib庫關閉

pj_shutdown()

;return0;

} // 獲得當前時間

pj_time_val tv;

pj_parsed_time pt;

pj_gettimeofday

(&tv)

;pj_time_decode

(&tv,

&pt)

;pj_log(3

,(this_file,

"...%04d-%02d-%02d %02d:%02d:%02d.%03d"

, pt.year, pt.mon, pt.day,

pt.hour, pt.min, pt.sec, pt.msec)

);

**

pj_thread_create(pool*,"", function, *arg, stack_size, flag, **pj_thread_t)//建立乙個執行緒

pj_thread_destroy(thread); //登出乙個執行緒

pj_thread_resume(thread); //執行緒繼續

pj_thread_sleep(1500); //當前的執行緒暫停1500毫秒

pj_thread_join(thrad); //等待執行緒結束

pj_thread_proc函式原型是:int thread_func(void * ar**);

在pjsip的相關函式中(例如pjsua_call_make_call等),都增加了執行緒註冊的判斷,

下面以pjsua_call_make_call為例說明:

如果執行pjsua_call_make_call的執行緒沒有在pjsip中註冊過,就會assert中斷,提示未知執行緒,需要使用pj_thread_register註冊才可以

//執行緒註冊

pj_status_t pjcall_thread_register

(void

)return pj_success;

}//呼叫執行緒

dword winapi callthreadproc

( lpvoid pparam )

tensorflow基礎使用1

1.op的設計及執行乙個簡單的圖import tensorflow as tf x tf.variable 1,2 建立變數 a tf.constant 3,3 建立常量 sub tf.subtract x,a 定義減法op add tf.add x,sub 定義加法op init tf.globa...

mysql 使用基礎 1

使用命令列連線 mysql mysql uroot p passowrd hlocalhost p port code mysql show databases 顯示資料庫 mysql use test 使用 test 資料庫 mysql show tables 顯示表資訊 mysql descri...

matlab使用基礎1

isinteger 函式 x 3 判斷是否為整數陣列。例isinteger x ans 0 因為matlab中常量預設為雙精度浮點值。如isfloat x 則ans 1。isvector 函式 用於判斷是否是乙個向量,在matlab中向量,即乙個1行n列或n行1列的矩陣,故isvector x 1。...