
Linux 应用编程
文章平均质量分 84
Linux环境下做应用C语言编程
金城孤客
物联网 BLE 单片机 LINUX
展开
-
linux环境下libcurl应用总结,实现FTP文件上传
目录概述libcurl的移植libcurl实现FTP上传FTP服务器搭建ftpupload.c编译验证API使用常见问题概述libcurl是一个免费的C语言开发库,支持HTTP、FTP、Telnet、SFTP等URL传输。例如实现FTP文件上传,使用该库函数来开发非常的便捷可靠。libcurl的移植libcurl库源码下载官网地址:https://curl.se/download.html下载源码:curl-7.79.1.tar.gz1.解压源码:tar -xzvf curl-7.79.1.ta原创 2021-10-21 11:41:26 · 1587 阅读 · 0 评论 -
Linux CAN应用编程
目录概述Linux can常用操作命令Linux CAN 应用编程CAN发送程序示例CAN接收程序示例CAN过滤器的使用概述CAN 协议通信技术在自动化领域,嵌入式器件编程,和汽车领域等具有广泛的应用。Socketcan 套接字是 Linux 下 CAN 协议的实现方法,使用socket API将CAN器件驱动程序实现为网络接口,最终以套接字接口呈现给用户。Linux can常用操作命令可以使用ip命令来查看或设置CAN,使用ifconfig或ip命令来开启/关闭CAN,canconfig工具来配置原创 2021-10-11 14:08:00 · 7417 阅读 · 1 评论 -
sqlite3内存数据库与文件数据库的应用总结
概述使用sqlite3进行数据库写操作,每插入一条数据都会回写到磁盘上,这样会导致写数据库的效率低,而且增加磁盘的擦写次数。为了解决该问题,我们可以将数据写入内存数据库中,定时把内存数据库的数据保存到文件数据库中,较少磁盘的操作次数。C代码1.创建文件数据库;2.创建内存数据库;3.创建文件数据库表格;4.创建内存数据库表格(和文件数据表格一致);5.内存数据库中attach文件数据库,这样可以保证文件数据库中的内容在内存数据库中可见;6.将数据写入内存数据表格中;7.定时将内存数据中的内原创 2021-10-07 16:13:14 · 1727 阅读 · 0 评论 -
嵌入式Linux sqlite3移植与使用
这里写目录标题概述sqlite3 移植sqlite3 常用命令sqlite3 API使用sqlite3 编程实例sqlite3 测试验证概述sqlite3是一个小型数据库,代码量少,运行占内存也比较少,采用C 编写,所以天生适合嵌入式系统中,尤其是嵌入式linux,相当支持,sqlite3可以直接通过shell运行,不过这个也只限于测试使用,在实际的项目编程中,我们还是要使用sqlite3提供的C/C++接口函数,也就是API接口。sqlite3 移植sqlite官网下载C源码:https://ww原创 2021-10-06 16:31:28 · 2511 阅读 · 0 评论 -
Linux 进程间通信之信号量
概述进程通信的概念请参考上一篇文章:Linux进程间通信之共享内存。信号量作用:用于进程/线程同步或互斥的机制。信号量主要用于控制多个进程间或一个进程内的多个线程间对共享资源的访问, 相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志,除了用于共享资源的访问控制外,还可用于进程同步。信号量接口函数包含头文件:#include <sys/sem.h>semget ()创建信号量:int semget(key_t key, int num_se原创 2021-08-13 16:18:26 · 628 阅读 · 0 评论 -
Linux 进程间通信之共享内存
概述进程间通信(interprocess communication,简称 IPC) 指两个进程之间的通信。系统中的每一个进程都有各自的地址空间,并且相互独立、隔离, 每个进程都处于自己的地址空间中。 所以同一个进程的不同模块(譬如不同的函数)之间进行通信都是很简单的,譬如使用全局变量等。但是,两个不同的进程之间要进行通信通常是比较难的,因为这两个进程处于不同的地址空间中。Linux内核提供多种IPC机制,管道和FIFO、共享内存、信号量、消息队列、socket。在实际项目中经常使用的是共享内存,即多个原创 2021-08-11 17:19:34 · 526 阅读 · 0 评论 -
Linux互斥锁的理解和使用
目录互斥的理解使用场景使用方法使用原则互斥失败的例子互斥的理解一句话理解互斥: 等我用完厕所,你再用厕所。什么是互斥?你我早起都要用厕所,谁先抢到谁先用,中途不被打扰。伪代码如下:void 抢厕所(void){if (有人在用) 我眯一会;用厕所;喂,醒醒,有人要用厕所吗;}假设有 A、 B 两人早起抢厕所, A 先行一步占用了; B 慢了一步,于是就眯一会;当 A 用完后叫醒 B, B也就愉快地上厕所了。在这个过程中, A、 B 是互斥地访问“厕所”,“厕所”被称之为临界资源。我们原创 2021-05-20 13:47:54 · 1196 阅读 · 1 评论 -
linux USB热插拔监听 系统编程 应用编程
实现功能自动识别并挂载USB设备。操作步骤1.socket创建一个AF_NETLINK协议族下NETLINK_KOBJECT_UEVENT类型的套接字。2.利用setsocketopt允许该套接字复用其他端口。3.使用bind函数将自身进程绑定到套接字。4.在while中使用poll或者select监听socket是否可读。5.如果可读,recv接收内核传递过来的数据,并从信息中识别...原创 2019-08-28 10:30:20 · 1135 阅读 · 0 评论 -
linux FTP系统编程 应用编程
#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include...原创 2019-08-16 17:30:34 · 959 阅读 · 0 评论