#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。...