
linux系统编程
jklinux
一个linux下的渣渣老码农
展开
-
yuv数据格式介绍与rgb的转换,图像文件的封装
通常我们用RGB表示一种彩色。计算机系统里的LCD显示的数据就是RGB来表示每个像素的颜色。 而在我们生活里,有黑白电视机与彩色电视机两种,拍摄节目源时不可以用两种不同的摄像机来存放两种图像数据。 所以为了兼容两种电视机,专家就引入YUV格式代替RGB,其中Y表示亮度, U和V表示色差。 黑白电视机只用Y信号, 而彩色电视机可由YUV转换成RGB再显示颜色。通常我们所用的YUV格式是 ITU-R原创 2017-05-15 23:33:42 · 1741 阅读 · 0 评论 -
poll, select与epoll的用法
多路IO复用: 就是实现同时监控多个文件描述符(此类文件描述符必须为不可操作时会进入堵塞状态), 会堵塞直到有一个或多个文件描述符可操作为止, 通过返回值找出可操作的文件描术符(可代替多线程工作).Linux下共有三个函数可完成此工作:一. poll函数 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeo原创 2017-05-16 17:35:57 · 797 阅读 · 0 评论 -
linux系统下动静态库的制作
库: 就是代码编译出来的一种形式 动态库,静态库动态库: win系统上的dll文件, lin系统上的so文件. 代码编译成一个独立的库, 不专属于一个程序.任何程序都可以共用这个库. 这个库不管多少程序调用,只要在内存里存在一份就可以了静态库: win上的lib文件, linux上的.a文件 静态库只能与其它的代码一起编译链接生成一个程序,不能像动态库作为一个独立的库使用.原创 2017-05-17 23:00:38 · 1025 阅读 · 0 评论 -
linux下的输入设备编程
输入设备包括: 鼠标,键盘,触摸屏,手柄等。在linux系统里,如果设备已经驱动好的话(注意手柄在centos7里默认没有支持),可以查看:cat /proc/bus/input/devices:输出的信息: I: Bus=0019 Vendor=0000 Product=0001 Version=0000 N: Name="Power Button" P: Phys=PN原创 2017-05-20 10:42:23 · 1722 阅读 · 0 评论 -
linux系统虚拟鼠标的实现
通过http://blog.youkuaiyun.com/jklinux/article/details/72570663博文可以得知:一个输入设备获取到的数据是以struct input_event为单位的。 而且鼠标的相对坐标事件中的type值为EV_REL时, code的值为REL_X时, value的正值表示右移,负值表示左移, 移动量为value原创 2017-05-21 12:11:42 · 3643 阅读 · 0 评论 -
linux下的epoll编程应用
例如实现用epoll读三个管道文件:test.c#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/epoll.h>#include <stdlib.h>typedef struct { char *name; int fd;}mydata_t; //每个文件描述符都使用一个结构体变量原创 2017-05-21 14:04:14 · 794 阅读 · 0 评论 -
linux v4l2编程
参考文档: https://linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.htmlv4l2 : video for linux api two version //也就是linux系统下视频设备驱动好后,应用程序怎样调用相关的视频设备的编程接口 视频设备: 摄像头, 硬件编解码设备, 图形加速等。原创 2017-05-15 21:10:20 · 2793 阅读 · 0 评论 -
linux uart编程
串口: 每次传输是按位为单位进行传输的接口. 如uart, usb, 网络, sata. 一般就是只用一根数据线来接收或发送数据。 并口: 每次传输是两位或以上为单位进行传输的接口. 一般会用多根数据线来接收或发送数据.单工: 只能单向传输的导线 半双工: 可以双向传输的导线,但某一时刻只能一个方向传输 全双工: 可以同时双向传输, 一般用两根单向导线实现uart: 通用异步接收传送器(串口原创 2017-05-15 11:59:28 · 5541 阅读 · 6 评论 -
linux ipv6 tcp和udp网络编程
ipv6: ip地址128位, 格式如: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx共分8个域, 如有多个域都是0000, 可以省略表示为::ifconfig里查看网络设备的ipv6 地址:enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.16...原创 2019-03-11 14:39:34 · 2134 阅读 · 0 评论