Mjpeg-streamer源码分析(一)
2019-07-13 01:59发布
生成海报
Mjpeg-streamer源码分析 --------------------------------------------------------------------------------------------------基础知识: 条件变量: 条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作: 一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。 为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 当程序进入pthread_cond_wait等待后,将会把g_mutex进行解锁, 当离开pthread_cond_wait之前,g_mutex会重新加锁。所以在main中的g_mutex会被加锁。 动态链接库的操作函数: #include void *dlopen(const char *filename, int flag); /* 打开动态链接库,返回动态库句柄handle */ char *dlerror(void); /* 返回由于dlopen(),dlsym()或者dlclose()产生的错误 */ void *dlsym(void *handle, const char *symbol); /* 通过handle,获得动态库内函数的地址,之后通过该地址调用动态库内的函数 */ int dlclose(void *handle); /* 关闭动态库 */ Link with -ldl. /* 注意,程序在编译的时候要用-ldl */ 字符串操作函数: #include char *strchr(const char *s, int c); /* 返回字符串s第一次出现c的指针 */ char *strrchr(const char *s, int c); /* 返回字符串s最后一次出现c的指针 */ char *strdup(const char *s); /* 复制字符串s,返回指向新字符串的指针(mallocfree) */ char *strndup(const char *s, size_t n); /* 复制字符串s最多n个字符,如果s正好有n个,'
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮