![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
mmyaoduli
这个作者很懒,什么都没留下…
展开
-
setsockopt
之前一直没明白setsockopt的作用。原来是用来设置socket的属性。setsockopt设置SO_REUSEADDR。socket关闭之后并不会立即收回,而是要经历一个TIME_WAIT的阶段。windows下最多可以达到4分钟。所以在这个时候对这个端口进行重新绑定就会出错。所以需要先设置 SO_REUSEADDR.或者在closesocket的时候,使用s转载 2016-02-17 17:57:12 · 987 阅读 · 0 评论 -
Linux之V4L2基础编程
1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲 区管理)-> 循环获取数据-> 关闭设备。3. 设备的打开和关闭:#include int open(const char *device_name, in转载 2015-10-08 20:54:11 · 369 阅读 · 0 评论 -
Linux系统中设置串口属性的基本流程
Linux下的串口设置包含波特率、数据位数量、停止位数量等的设置,串口设置主要是设置struct termios结构体成员值,下面小编就给大家详细介绍下Linux下的串口设置吧。 用户常见的数据通信的基本方式可分为并行通信和串行通信。 并行通信是指利用多条数据传输线将一个资料的各位同时传送。特点是传输速度快,适用于短距离通信,但要求传输速度较高的应用场合。 串转载 2015-10-02 11:53:00 · 4024 阅读 · 0 评论 -
通信 ≠ 通讯,串口通信概念,同步与异步的区别
一、通信 ≠ 通讯《现代汉语词典第5版说明》强调:“全面正确地执行国家的语言文字规范和科技术语规范是本书的重要原则。”新版《现汉》(《现代汉语词典》第 5 版) “通信”“通讯”词条的释义:【通信】①用书信互通消息, 反映情况等:~处|我们几年前曾经通过信。②利用电波、光波等信号传送文字、图像等。根据信号方式的不同, 可分为模拟通信和数字通信。旧称通讯。【通讯】①通转载 2015-10-02 12:02:58 · 870 阅读 · 0 评论 -
关于信号量sem_wait的整理(转)
SYNOPSIS #include int sem_init(sem_t *sem, int pshared, unsigned int value);//初始化信号量 int sem_wait(sem_t * sem);//等待信号,获取拥有权 int sem_trywait(sem_t * sem);转载 2015-10-02 15:12:51 · 406 阅读 · 0 评论 -
信号量sem_wait()的使用
闲来无事,我给大家讲下UNIX/Linux下信号量函数的使用。首先你得知道什么叫信号量,什么时候要用信号量。这个嘛,主要就是用来保护共享资源的,也就是说如果你想限制某个(些)资源在同一时刻只能有一(多)个线程拥有,就可以使用信号量。当然也可以用作让一个线程等待另一个线程完成某项工作。 用下面一组函数(系统调用)来实现。int sem_init(sem_t *转载 2015-10-02 15:14:03 · 895 阅读 · 0 评论 -
msgrcv/msgsnd
msgrcv/msgsnd为linux系统中异步或进程间通信的一种机制,这两个函数主要用于操作特定的消息队列。msgrcv()可以从消息队列中读取消息,msgsnd()将一个新的消息写入队列。功能描述msgrcv()可以从消息队列中读取消息,msgsnd()将一个新的消息写入队列。在消息队列上进行收发消息。为了发送消息,调用进程对消息队列进行写入时必须有写权能。接收消息转载 2015-10-04 17:14:36 · 745 阅读 · 0 评论 -
ubuntu多线程
线程创建之后马上就开始执行,与主线程一起执行,先后顺序随机,函数pthread_join用来等待一个线程的结束。头文件 : #include 函数定义: int pthread_join(pthread_t thread, void **retval);描述 :pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被原创 2015-10-06 16:59:00 · 3390 阅读 · 0 评论 -
linux c学习笔记----消息队列(ftok,msgget,msgsnd,msgrcv,msgctl)
ftok()#include #include 函数原型: key_t ftok( const char * pathname , int proj_id );参数: pathname 就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽 然为int,但是只有8个比特被使用(0-255)。转载 2015-10-06 17:33:10 · 3074 阅读 · 0 评论 -
pthread条件变量condition(配合mutex锁使用),经典,有图
为了便于理解,画了个图,一系列动作完成下来只需要一个mutex和一个conditional_variable。wait函数包含了很多操作,在wait之前和之后必须要手动加锁/解锁mutex,保证同一时间只有一个人对条件变量cond进行使用。先unlock或者先发送signal()都可以,Linux推荐吧signal()包在中间。注意,即便以及发送了signal,却没有unl转载 2015-10-20 14:45:12 · 810 阅读 · 0 评论 -
struct和typedef struct
struct和typedef struct分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student s转载 2015-10-29 16:57:00 · 276 阅读 · 0 评论 -
C语言中||\这个符号\是连接符,不是换行,
#define IS_USART_ALL_PERIPH(PERIPH) (((PERIPH) == USART1) || \ ((PERIPH) == USART2) || \转载 2015-10-31 11:48:00 · 7960 阅读 · 0 评论 -
assert()函数用法总结
转自:http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.htmlassert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression转载 2015-11-09 17:27:50 · 265 阅读 · 0 评论 -
v4l2解释说明(白话易懂版)
首先在学习v4l2之前,你得起码先有个摄像头,不然没得玩另外,最好给自己指定一个计划,有针对性的学习,定下时间,这样学习才有紧迫感v4l2架构入门其实并不是很难,高级的我还没资格说,想当初我刚开始看的时候,也是感觉超级难啊,因为没有抓住体系,对整体没有认识,所以我就花了两天时间天天研究那几篇文章和程序程序属这两篇文章最为经典了:h转载 2015-11-10 10:00:51 · 635 阅读 · 0 评论 -
error: 'for' loop initial declarations are only allowed in C99 mode
使用gcc编译代码是报出error: 'for' loop initial declarations are only allowed in C99 modenote: use option -std=c99 or -std=gnu99 to compile your code错误,这是因为在gcc中直接在for循环中初始化了增量:[cpp] view转载 2015-11-26 09:26:36 · 559 阅读 · 0 评论 -
SO_REUSEADDR和SO_REUSEPORT
SO_REUSEADDR提供如下四个功能:SO_REUSEADDR允许启动一个监听服务器 并捆绑其众所周知端口,即使以前建立的将此端口用做他们的本地端口的连接仍存在。这通常是重启监听服务器 时出现,若不设置 此选项,则bind时将出错。 SO_REUSEADDR允许在同一端口上启动同一服务器的多个实例,只要每个实例捆绑一个不同的本地IP地址即可。对于TCP,我们根本不可能启动捆绑相同IP地转载 2016-02-17 18:00:37 · 520 阅读 · 0 评论 -
C++ int与string的转化
int string 转化转载 2016-04-11 18:03:16 · 468 阅读 · 0 评论