linux编程
SevenFighting
这个作者很懒,什么都没留下…
展开
-
linux下多线程之pthread_detach(pthread_self())
转载自:http://blog.csdn.net/zjc156m/article/details/9028643留一个笔记pthread_detach(pthread_self())linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会转载 2015-12-29 10:05:05 · 351 阅读 · 0 评论 -
C语言位域解析&符号位扩展规则
从一个例子说起:int main(void){ union{ int i; struct{ char a : 1; char b : 1; char c : 2; }bits; }num; printf("Input an integer fo...原创 2018-11-06 17:14:59 · 3521 阅读 · 1 评论 -
Linux编程--文件描述符fd
linux中, 每一个进程在内核中,都对应有一个“打开文件”数组,存放指向文件对象的指针,而 fd 是这个数组的下标。 我们对文件进行操作时,系统调用,将fd传入内核,内核通过fd找到文件,对文件进行操作。 既然是数组下标,fd的类型为int, < 0 为非法值, >=0 为合法值。在linux中,一个进程默认可以打开的文件数为1024个,fd的范围为0~1...原创 2018-10-22 17:39:48 · 17659 阅读 · 0 评论 -
[从0到1搭嵌入式工程]常用加密方法之AES加解密及密码生成和获取、cyassl库
在项目中,遇到两个终端之间的传输,就会遇到数据加密的问题,比如使用P2P协议音视频和命令的传输。这时,对于加密方法的选择,往往使用AES就可以满足需求了。下文中还会介绍密码的生成和获取。AES: 高级加密标准。是一种对称分组加密算法。 对称的意思是加密端和解密端使用相同的密码。分组的意思是把数据分成一小块一小块,进行加密。AES加密相对于DES(数据加密标准),速度更快,安全级别更高,...原创 2018-09-26 19:15:42 · 1383 阅读 · 0 评论 -
[从0到1搭嵌入式工程]常用加密方法之Base64编解码及代码实现
Base64概念:严格来讲Base64不是一种加密算法,是为了让不可显示的数据转换成可显示的字符串的编码方法。“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法”帖一段别人的博客:“什么是“可打印字符”呢?为什么要用它来传输8Bit字节码呢?在回答这两个问题之前我们有必要来思考一下什么情况下需要使用到B...原创 2018-09-26 15:07:37 · 329 阅读 · 0 评论 -
linux线程退出的方式及线程资源清理
关键词:线程资源释放, pthread_join()1, 每个线程有自己的一组寄存器,自己的栈空间, 自己的errno变量;2,pthread_create线程创建并不能保证哪个线程先运行,新线程还是调用线程。3,线程正常退出的方式有三种: 线程函数直接return, 被同一进程中的其他线程调用pthread_cancel取消,线程调用pthread_exit 退出,(线程运行异常退出原创 2016-08-03 16:38:28 · 2140 阅读 · 0 评论 -
Linux下RTC时间的读写分析
Linux系统下包含两个时间:系统时间和RTC时间。系统时间:是由主芯片的定时器进行维护的时间,一般情况下都会选择芯片上最高精度的定时器作为系统时间的定时基准,以避免在系统运行较长时间后出现大的时间偏移。特点是掉电后不保存。RTC时间:是指系统中包含的RTC芯片内部所维护的时间。RTC芯片都有电池+系统电源的双重供电机制,在系统正常工作时由系统供电,在系统掉电后由电池进行供电。转载 2016-07-08 18:02:33 · 1937 阅读 · 0 评论 -
linux编程之mkdir() rmdir() remove()函数
mkdir()mkdir函数用于创建目录。格式如下: #include #include #include int mkdir(const char *pathname,mode_t mode); 其中参数pathname是新创建目录的目录名,mode指定该目录的访问权限,这些位将受到文件创建方式屏蔽原创 2016-03-02 13:35:15 · 2331 阅读 · 0 评论 -
statfs获得硬盘使用情况 模拟linux命令 df
转载自:http://blog.csdn.net/mociml/article/details/5335474编程中用于获取磁盘的使用情况。先说statfs结构:#include /* 或者 */int statfs(const char *path, struct statfs *buf); int fstatfs(int fd, struct stat转载 2016-03-02 11:20:21 · 538 阅读 · 0 评论 -
linux编程之C语言代码执行时间测试方法
四种方法,分别是clock, times, gettimeofday, getrusage。最常用的方法为gettimeofday()直接提取硬件时钟进行运算,得到的结果的精度较高,但是也正由于它提取硬件时钟的原因,这个方法只能计算程序开始时间和结束时间的差值。而此时系统中如果在运行其他的后台程序,可能会影响到最终结果的值。如果后台繁忙,系统dispatch过多的话,并不能完全真实反映被测转载 2016-01-27 18:15:29 · 1348 阅读 · 0 评论 -
linux编程之文件操作fseek,fwrite,fread,ftell使用
转载自:http://blog.chinaunix.net/uid-22547469-id-4185275.htmlfseek 功 能:重定位流上的文件指针 用 法:int fseek(FILE *stream, long offset, int fromwhere); 描 述:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移o转载 2016-01-09 11:46:34 · 1594 阅读 · 0 评论 -
Linux中errno使用
转载自:http://blog.csdn.net/21aspnet/article/details/6740110errno是什么?经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数,有些时候会返回-1,也就是调用失败(返回值往往只有0成功,-1失败,使用errno记录失败的原因),这个时候往往需要知道失转载 2016-01-08 14:13:20 · 1310 阅读 · 0 评论 -
linux系统调用之mount()/umount()函数详解
转载自:http://blog.sina.com.cn/s/blog_6385c7310100iqmn.html功能描述:mount挂上文件系统,umount执行相反的操作。头文件:#include #include //errno的判断用法: int mount(const char *source, const c转载 2016-01-08 11:13:56 · 12707 阅读 · 1 评论 -
open/read/write和fopen/fread/fwrite的区别
转载自:http://www.cnblogs.com/ldp-web/archive/2011/10/21/2220180.htmlopen:系统调用,返回的是文件描述符,即文件句柄,是文件在文件描述副表里的索引,是linux的系统调用,需要包含unistd.h。fopen:C语言库函数,返回的是一个指向文件结构的指针。fopen是ANSI C标准中的C语言库函数,在不同的操作系统转载 2016-01-04 09:28:07 · 425 阅读 · 0 评论 -
Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches
转载自http://www.linuxidc.com/Linux/2010-03/24939.htm 和 http://blog.csdn.net/wyzxg/article/details/7279986/简单流程版:频繁的文件访问会导致系统的Cache使用量大增$ free -mtotal used free shared buffers cachedMem转载 2016-01-18 20:13:41 · 800 阅读 · 0 评论 -
pthread编程基础
转载自 http://blog.chinaunix.net/uid-20528014-id-333508.htmlLinux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。与vxworks上任务的概念类似,都是调度的最小单元,都有共享的堆、栈、代码区、全局变量等。转载 2015-12-29 10:24:19 · 608 阅读 · 0 评论 -
linux编程 deinit()方法
先写个概念,研究明白了之后补充deinit()的概念 程序退出时,释放程序的资源。类似于析构函数和swift语言中的deinit()函数。原创 2015-12-29 10:11:01 · 972 阅读 · 0 评论 -
[转载]UDP组播接收端解析
转自:https://www.cnblogs.com/hateislove214/archive/2010/11/05/1869883.html网络中的一台主机如果希望能够接收到来自网络中其它主机发往某一个组播组的数据报,那么这么主机必须先加入该组播组,然后就可以从组地址接收数据包。在广域网中,还涉及到路由器支持组播路由等,但本文希望以一个最为简单的例子解释清楚协议栈关于组播的一个最为简单明了...转载 2019-01-05 09:58:42 · 495 阅读 · 2 评论