![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux/unix
fc34235
这个作者很懒,什么都没留下…
展开
-
linux udev详解
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但转载 2017-05-07 13:09:11 · 1469 阅读 · 0 评论 -
linux free命令输出详解
解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516 1 2 3 4转载 2018-01-29 16:34:32 · 637 阅读 · 0 评论 -
linux IO子系统和文件系统读写流程
转载于:http://blog.csdn.net/kidd_3/article/details/6909097这篇文章完整的描述了块设备操作从应用到设备底层调用的整个流程,可以据此逻辑深入代码学习。我们含有分析的,是基于2.6.32及其后的内核.我们在linux上总是要保存数据,数据要么保存在文件系统里(如ext3),要么就保存在裸设备里。我们在使用这些数据的时候都是通过文转载 2017-11-21 13:55:08 · 341 阅读 · 0 评论 -
C与C++互相调用的方法
转载于:https://www.cnblogs.com/nx520zj/p/5920782.htmlC与C++互调用的方法,这篇文章解释的比较清楚了。对于__cplusplus 和extern "C“ 的意义也有说明,__cplusplus这个宏定义只有使用G++编译时才会生效,所以与extern "C”配合使用,就可以兼容C调C++或C++调用C。使用extern "C“后的效果,可以用转载 2017-11-14 16:32:56 · 2204 阅读 · 0 评论 -
字节对齐的根本原因。
转载于:https://www.ibm.com/developerworks/library/pa-dalign/Memory access granularityProgrammers are conditioned to think of memory as a simple array of bytes. Among C and its descendants,char*转载 2017-11-06 19:53:05 · 1157 阅读 · 0 评论 -
linux同步IO:sync,fsync,fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed write)(Bac转载 2017-09-18 15:01:45 · 500 阅读 · 0 评论 -
linux中的strip命令简介------给文件脱衣服
作为一名Linux开发人员, 如果没有听说过strip命令, 那是很不应该的。 strip这个单词, 大家应该早就学过了, 你就记住是脱衣服就行了, 别的不要多想。 在linux中, strip也有脱衣服的含义, 具体就是从特定文件中剥掉一些符号信息和调试信息。 我们来看main.c文件:[cpp] view plain copy #inclu转载 2017-07-06 16:15:40 · 620 阅读 · 0 评论 -
linux下的so、o、lo、a、la文件的区别
转载于:http://blog.csdn.net/xljiulong/article/details/6636885o: 编译的目标文件a: 静态库,其实就是把若干o文件打了个包so: 动态链接库(共享库)lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相转载 2017-06-23 22:23:48 · 1416 阅读 · 0 评论 -
linux下查看系统自身宏定义
跨平台程序,经常要用到区分系统的宏定义,比如windows中的WIN32, WIN64, Linux中的 unix, linux等等系统自定义宏那么在linux下面,怎么查看系统有哪些自定义宏咧,用如下方法:$ touch dummy.hxx$ cpp -dM ./dummy.hxx输出如下:[xhq@syfh1-10-0-128-229 server]$ cp转载 2017-06-19 17:42:20 · 10810 阅读 · 0 评论 -
嵌入式Linux使用Busybox init进程启动过程分析
转载于http://blog.csdn.net/shanzhizi/article/details/39082495一、Busybox Busybo是一个遵循GPLv2协议的开源项目。Busybox将众多的Linux命令集合进一个很小的可执行程序中,可以用来替换GNU fileutils shellutils等工具集。Busybox中各种命令与相应的GNU工具相比,所能提供的选项转载 2017-05-10 10:38:56 · 449 阅读 · 0 评论 -
浅析gcc、arm-Linux-gcc和arm-elf-gcc的关系
浅析gcc、arm-Linux-gcc和arm-elf-gcc的关系一、GCC简介The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译器呢?那是因为它不仅支持 C 语言编译,还支持 C++, Ada,Objective C 等许多语言。另外 GCC 对硬件平台的支持,可以所无所不在,它不仅支持转载 2017-05-18 16:50:55 · 402 阅读 · 0 评论 -
make[1]: *** 警告:文件的修改时间在将来2.1e+07
在使用git clone 命令下载服务器的代码到本地后编译,有时会出现make[1]: *** 警告:文件的修改时间在将来2.1e+07的警告。后来发现是本地服务器的时间比正常时间慢10多分钟导致。这时可以使用:find ./* -exec touch {} +命令来同步本地的文件时间。原创 2017-05-08 17:34:06 · 2830 阅读 · 0 评论 -
通过信号实现在应用层检测TF卡的拔插
本文描述如何实现在应用中通过不采用轮询的方式对TF卡热拔插的检测。文中根据实际项目实现所写,部分内容有载抄至其它博客,如有侵权,在些表示歉意。也请与我联系! 在项目中要实现对TF卡热拔插的检测,最初是采用轮询的方式帧测/dev目录下的结点来实现。但这种方式有两个缺点:一是轮询一直要占用CPU,二是要放在一个循环中,不利于代码模块化。所以后来让系统帧测卡热拔插事件,再给指定的应用进程发信号原创 2017-05-07 14:24:22 · 3155 阅读 · 0 评论 -
《Autotools – GNU Autoconf, Automake与Libtool实践者指南》第一章
最近项目中有用到此部分工具,所以在此转载一篇相关文章,如有侵权,请留言告知!转载于http://www.xuebuyuan.com/2147621.html前言 本文根据《Autotools - A Practioner's Guide to GNU Autoconf, Automake, and Libtool》第一章翻译整理,省略了部分语句。正文 正如序言里所讲,GNU Autotools...转载 2018-04-11 19:59:26 · 1277 阅读 · 0 评论