
Linux C
文章平均质量分 97
汤梦飞123
这个作者很懒,什么都没留下…
展开
-
库文件(动态库/静态库)的编译及链接
库文件的编译及链接库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a)和动态库(.so)。静态库简介之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件 .o 与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。试想一下,静态库与汇编生成的目标文件一起链接为可执行文件,那么静态库原创 2020-09-12 18:57:09 · 1933 阅读 · 0 评论 -
makefile 学习历程
makefile 学习心得1. wildcard 展开通配符将通配符中包括的所有文件展开。示例1:不使用 wildcard-rm *.o -f结果:rm *.o -f示例2:使用 wildcard-rm $(wildcard *.o) -f结果:rm data_queue.o dlt698.o main.o process_manager.o public.o tcp_client.o -f2. VPATH 与 vpath 文件搜索正常情况下,makefile 只会原创 2020-08-12 13:44:06 · 322 阅读 · 1 评论 -
Linux 下获取进程名及运行路径
Linux 下获取进程名在可执行程序中有时候会需要获取当前程序的进程名,在这里介绍下运用 readlink 函数或命令获取程序运行的路径及进程名。示例代码1:运用 readlink 函数,填充 /proc/self/exe 参数实现#include <stdio.h>#include <stdlib.h>#include <unistd.h>#define MAXBUFSIZE 1024int main ( int argc, char * a原创 2020-08-12 09:48:39 · 1128 阅读 · 0 评论 -
Linux 文件锁 fcntl 函数详解
Linux 文件锁 fcntl 函数详解#include <unistd.h>#include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);简介:fcntl() 功能是针对文件描述符提供控制,根据不同的 cmd 对文件描述符可以执行的操作也非常多,用的最多的是文件记原创 2020-08-07 15:52:15 · 2722 阅读 · 0 评论 -
柔性数组使用详解
柔型数组详解柔型数组的概念结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组(flexible array)成员(也叫伸缩性数组成员)。在日常编程中,有时需要在结构体中存放一个长度是动态的字符串(也可能是其他数据类型),一般的做法,实在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间。这种方法的最大缺点是导致结构体成员地址不连续,导致内存碎片化。在通常情况下,如果想要高效的利用内存,那么在结构体内部定义静态的数组是非常浪费的行为。其实柔性数组的想法和动态数组的想法是一原创 2020-08-06 15:19:35 · 750 阅读 · 0 评论 -
文件操作之标准IO与系统IO
文件操作之标准IO与系统IO文件操作既可以用系统IO实现,也可以用标准IO实现,那二者又有和联系和区别呢?联系标准IO的实质是调用系统IO完成文件操作,即标准IO的执行依附于系统IO。区别系统IO是低级IO,通过API直接与操作系统内核进行操作,标准IO属于C库,在用户空间的可移植性强。标准IO在打开文件时候就会建立起缓冲区,缓冲区有三种模式。而系统IO没有,需要手动创建。数据流向无缓存IO操作数据流向路径:数据–内核缓存区–磁盘标准IO操作数据流向路径:数据–流缓存原创 2020-08-05 10:06:17 · 300 阅读 · 0 评论 -
安装Ubuntu16.04、VMware tools以、交叉编译器心得
安装Ubuntu16.04心得因为我虚拟机中的Ubuntu是14.02版本的而且是32位的,一个项目开发需要 用到64位的,所以我选择了一款64位的Ubuntu16.04 ,因为需要用到共享文件夹,导致一路遇到很多问题,所以这里做个总结。ios镜像下载第一步肯定是需要去下载镜像文件的,由于资源源在国外,所以从官网上下载速度很慢,所以不推荐,这里介绍几个国内靠谱的Ubuntu下载资源链接,这几...原创 2020-04-15 16:08:45 · 561 阅读 · 0 评论 -
Linux C 时间获取函数与时间设定函数详解(搭配代码)
与时间相关的结构体struct tmint tt;printf("fdsfdsf");struct tm { int tm_sec; /* 秒 – 取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int tm_hour; /* 时 - 取值区间为[0,23] */ int tm_mday; /* 一个月中的日期 - 取...原创 2019-07-04 11:34:04 · 417 阅读 · 1 评论