Linux
Longines forever
talk is cheap!show me the code!
展开
-
Linux 字符设备驱动模板
在Linux内核里面,设备(device)主要分为字符设备,块设备,网络设备,字符设备驱动是Linux驱动基础,在看《Linux 设备驱动开发详解》这本书的过程中,把字符设备相知识记录整理如下。字符设备驱动的组成字符设备驱动模块加载和卸载函数//设备结构体struct xxx_dev_t{ struct cdev cdev; //......}xxx_dev;static str...原创 2020-05-05 14:18:09 · 1015 阅读 · 1 评论 -
Linux 文件系统与驱动
之前做应用程序的开发,就知道Linux系统的一大特点就是一切皆文件,一直以来对所有设备的操作都是使用系统函数open read write close来实现的,就没关心过系统里面是怎么实现对各种设备的区分和控制柜,直到开始看Linux设备驱动方面的知识以后,感觉像发现了新大陆一样的神奇,故把相关知识记录下来,方便以后自己查找。文件系统调用文件的打开int open(const char *p...原创 2020-05-04 11:37:32 · 924 阅读 · 1 评论 -
Ubuntu18.04 安装ELDK交叉编译Linux kernel
ELDK 下载ELDK(Embeded Linux Development Kit),嵌入式Linux开发完成开发套件。安装包下载地址官方文档安装过程中遇到的问题这里下载的是最新的安装镜像(eldk-5.6-armv5te.iso)注:5.3和5.4的版本在Ubuntu18.04和Fedora20上安装不成功,一直报find: invalid mode ’+111‘的错误,原因是这...原创 2020-04-21 19:56:44 · 821 阅读 · 0 评论 -
Linux 编程时间和时区
在平时编写Linux代码的时候,每次用到时间或者是时区都需要去查找资料,为了以后方便,把平时用的的相关内容做个整理,方便以后查询,毕竟好记性不如烂笔头。相关结构体struct timeval/* A time value that is accurate to the nearest microsecond but also has a range of years. */str...原创 2020-04-18 14:51:26 · 512 阅读 · 0 评论 -
Linux 下C语言多线程编程--互斥锁
互斥锁互斥锁用来保证一段实际内只有一个线程在执行一段代码(保证共享数据的完整性)互斥锁变量typedef union{ struct __pthread_mutex_s __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align;} pthread_mutex_t;互斥锁的生成/* Initial...原创 2020-04-11 14:56:44 · 1103 阅读 · 0 评论 -
Linux 下C语言多线程编程--线程数据
线程数据在C语言编程中,我们都知道,数据共享往往是通过全局变量的方式,全局变量在单线程中不会有什么问题,但是在多线程情况下,如果多个线程都对这个全局变量进行读写操作,需要加锁进行保护,锁的代价其实是很大的。在实际的使用中,很多时候我们只想要线程之间的全局变量,只能在该线程内访问,其他线程不能访问,这个时候就可以使用线程数据来实现,通过一个键值pthread_key_t来实现键值的创建函...原创 2020-04-11 11:14:16 · 445 阅读 · 0 评论 -
Linux 下C语言多线程编程--线程属性
线程属性属性结构union pthread_attr_t{ char __size[__SIZEOF_PTHREAD_ATTR_T]; long int __align;};属性值不能直接设置,必须使用相关函数进行操作,线程属性主要包括:是否绑定,是否分离,堆栈地址,堆栈大小,优先级初始化函数函数原型/* Initialize thread attribute *ATTR ...原创 2020-04-09 20:18:49 · 431 阅读 · 1 评论 -
Linux 下C语言多线程编程
进程与线程的区别进程拥有独立的地址空间,而且进程间的数据空间也相互独立,数据的传递得通过通信的方式;线程是在一个进程下同时运行,多个线程之间的数据共享线程的启动函数原型:/* Create a new thread, starting with execution of START-ROUTINE getting passed ARG. Creation attributed...原创 2020-04-03 19:00:07 · 206 阅读 · 0 评论 -
Linux Socket 编程相关函数
struct sockaddr and struct sockaddr_instruct sockaddr定义在<sys/socket.h>头文件中,原型如下/* Structure describing a generic socket address. */struct sockaddr{ //unsigned short int sa_family; //表明协议族,...原创 2020-03-28 15:46:25 · 307 阅读 · 0 评论 -
Linux 下使用select 实现TCP server和TCP client
基于TCP(面向链接)的socket编程Server端的流程如下:1 创建Socket套接字2 将套接字绑定到一个本地地址(IP)和端口(port)上3 将套接字设置为监听模式,准备接收客户端请求(listen)4 等待客户端请求,当请求到来后,接受链接请求,返回一个新的对应于此次链接的套接字(accept)5 用返回的套接字和客户端进行通信(send/recv ...原创 2020-03-28 14:18:38 · 3132 阅读 · 1 评论