摘要: 先说明这里提到的灵活性其实也是相对来说的,并不是说明数据包都可以定义。 用户层串口通信协议 简单的来说用户层的串口通信协议就是如何定义一个数据包格式,发送端按照规定的数据包格式发送出去,接收端按照规定的数据包格式解析出正确的数据。 那为什么又要在用户层定义呢,其一是因为底层的通信协议不是随随便便就可 阅读全文
posted @ 2018-05-11 18:15 空水 阅读(4129) 评论(1) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 一、Inotify机制 1.简单介绍inotify:Inotify可用于检测单个文件,也可以检测整个目录。当检测的对象是一个目录的时候,目录本身和目录里的内容都会成为检测的对象。 此种机制的出现的目的是当内核空间发生某种事件之后,可以立即通知到用户空间 阅读全文
posted @ 2018-04-23 15:00 空水 阅读(3247) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 自己实现一个tail的功能(使用IO系统调用),完全类似的操作步骤就不实现了,主要是让自己加深了解。 下面的代码不足之处很多,以后有空改正。 阅读全文
posted @ 2018-04-16 21:10 空水 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 malloc()和free()是我经常需要用到的函数,一般情况下,C程序使用malloc()在堆上分配内存,free()释放内存,两者的参数和返回值就不在这叙述了,本文主要是简单的记录下malloc()和free()的工作原理。 malloc()返回内 阅读全文
posted @ 2018-04-10 19:09 空水 阅读(1731) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 单位换地方了,SVN的服务器和本机不在一个网段,原先的SVN文件夹进行“SVN Update”的时候报错了,如下: 网上一查,原来是DNS域名解析错误,“C:\Windows\System32\drivers\etc”目录下的HOSTS文件,用记事本打 阅读全文
posted @ 2018-04-04 15:16 空水 阅读(1321) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 O_APPEND表示以每次写操作都写入文件的末尾。lseek()可以调整文件读写位置。 <<Linux/UNIX系统编程手册>>上有这样一个问题:当在O_APPEND打开后,然后用 lseek移动文件开头,然后再用write写,这个时候,数据会显示在文 阅读全文
posted @ 2018-04-02 20:37 空水 阅读(3089) 评论(0) 推荐(1) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 有些需求需要我们不断的输入数据很庞大,如果我们安装常规方法不断地在终端输入值很麻烦(前提是输入的数据是固定的,并不会随程序的运行而改变),这个时候我们就可以调用freopen函数来解决这个麻烦。 freopen一般都是将stdin和stdout重定向。 阅读全文
posted @ 2018-03-29 15:10 空水 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 每个进程都有自己的环境变量,在C语言程序中可使用外部变量(char **environ)来访问环境,而库函数可允许进程去获取或修改自己环境的值。 两种方法使用该变量。 第一种是将其直接声明为外部变量,就可以直接调用了: 第二种,该变量在unistd.h 阅读全文
posted @ 2018-03-27 20:40 空水 阅读(2081) 评论(0) 推荐(2) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 简单的来说,ls -l 显示的是实际文件(目录)大小,而du显示的是文件(目录)占用磁盘空间的大小。 linux下一切皆文件。 首先,硬盘的最小存储单位叫做"扇区"。每个扇区储存512字节。 系统读取硬盘的时候,一次性读取一个"块(block)"(一次 阅读全文
posted @ 2018-03-27 10:37 空水 阅读(1620) 评论(0) 推荐(0) 编辑
摘要: 为了能够快速找到发生段错误的地方,记录以下两种方法。 objdump和backtrace的配合使用 :https://www.cnblogs.com/jiangyibo/p/9507555.html 代码:test.c 一、命令addr2line: addr2line -e '可执行文件名' 'dm 阅读全文
posted @ 2018-03-26 20:50 空水 阅读(1108) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 ntp,ptp,ntp,ptp 本文只说软件时间戳 先上几个推荐的网址,可以更好的了解ptp: https://docs.fedoraproject.org/f26/system-administrators-guide/servers/Configu 阅读全文
posted @ 2018-03-23 19:41 空水 阅读(5481) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 领导要求,要4台机器时钟同步,上网查了查,主要看了看ptp和ntp,感觉ntp就够用,索性就直接上手ntp了。 以下内容纯属最基础的内容,只适合第一次接触ntp并且需求简单的朋友。 就我当前项目来介绍下ntp:多台计算机因为某些原因对时间的同步性比较重 阅读全文
posted @ 2018-03-22 20:09 空水 阅读(3297) 评论(0) 推荐(1) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 假如生成一个动态库A,然后动态库B的生成又调用了动态库A,那么凡是调用了动态库B的程序或者库,需要既链接动态库A也要链接动态库B,这也是动态库最重要的特性,不然就叫静态库了,可以仔细想想下面这段话: 如果将程序链接到共享库,那么链接器就不会把库中的目标 阅读全文
posted @ 2018-03-21 15:14 空水 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 今天编了个动态库,然后自己测试了一下。 忘记设置程序运行时系统搜索库的路径发生错误: 忘记设置程序编译的时候 -L 指定路径报的错误: -L : 告诉程序在编译的时候动态库的信息在那个路径可以找到。 /etc/ld.so.conf :告诉系统程序运行时 阅读全文
posted @ 2018-03-20 20:24 空水 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 编程之路刚刚开始,错误难免,希望大家能够指出。 刚刚开始学习cmake,写这篇之前我认真的看了“小代码2016”的博客,感觉很不错,看完之后我自己练习了一遍,记录一下。 1.首先建立好合适的目录结构,便于自己和他人查看。 build目录:是为了将cmake生成的CMakeCache.txt Make 阅读全文
posted @ 2018-03-14 20:33 空水 阅读(937) 评论(0) 推荐(0) 编辑