linux应用编程
包括多任务变成和网络编程
Embedded-Alien
这个作者很懒,什么都没留下…
展开
-
轻量级的菜单系统,可移植性强
menu.h#include "stdio.h"#include "stdlib.h"#include "string.h"#include "unistd.h"#include <curses.h>#define DISPLAY_C#define offsetof(TYPE, MEMBER) ((size_t) & ((TYPE *)0)->MEMBER)#define container_of(ptr, type, member) ({ \原创 2021-06-08 16:36:05 · 261 阅读 · 0 评论 -
socket C/S多线程编程
移植部分list.h#ifndef _LIST_H#define _LIST_H#include <stddef.h>//通过结构体成员指针获取结构体指针位置#define container_of(ptr, type, member) ( \ { \ const typeof(((type *)0)->member)原创 2021-06-08 16:03:03 · 118 阅读 · 0 评论 -
shell变量的操作
[ -f "somefile" ] :判断是否是一个文件[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限[ -n "$var" ] :判断$var变量是否有值[ "$a" = "$b" ] :判断$a和$b是否相等-r file 用户可读为真-w file 用户可写为真-x file 用户可执行为真-f file 文件为正规文件为真-d file 文件为目录为真-c file 文件为字符特殊文件为真-b file原创 2021-03-24 14:59:39 · 208 阅读 · 1 评论 -
linux notifier的理解和应用
notifier主要用于内核间的各个模块的通信(通知源)子系统A进行定义初始化和回调函数的调用(被通知)子系统B进行回调函数的注册和注销当A系统发生某种事件时,就调用通知链中的所有回调函数,B系统中注册的回调函数就会得到执行。一旦执行回调函数,他会从链表头依次执行每一个回调函数,那么依次执行是依次性执行完,执行过程中任意时刻都可睡眠?这些需求也就产生了4种类型的notifier_chain。struct notifier_block { /* chain的基本单位 */ int (*noti原创 2021-03-09 19:33:53 · 948 阅读 · 0 评论 -
gPTP的理解和使用
1588v2(PTP)报文通用格式IEEE 1588v2协议附录D定义了1588V2 over IPv4的报文封装,附录E定义了1588V2 over IPv6的报文封装,附录F定义了1588v2 over IEEE 802.3 /Ethernet的报文封装。其他如1588v2 over MPLS封装,业界还没有成熟的标准。除此之外,在实际应用中还可能携带VLAN。PTP over EthernetPTP over UDP over IPv4PTP over UDP over IPv6PTP o原创 2021-01-13 16:11:52 · 15340 阅读 · 3 评论 -
从原始数据中获取gps信号强度(NMEA协议)
GSV信号中带有gps信号强度的信息原创 2021-01-13 16:06:59 · 1654 阅读 · 0 评论