
C基础
_helloWH_
幸福就在呼吸间
展开
-
代码仓库-linux常用函数汇集
/********************************************************************** Author : lile* Modified : 2020年4月23日星期三 16:56:13* Email : roger0212@163.com* HomePage...原创 2020-04-23 16:15:51 · 428 阅读 · 0 评论 -
IP地址转换——结构体struct sockaddr_in, struct sockaddr,struct in_addr
From: https://blog.youkuaiyun.com/angle0615303/article/details/7657267一、结构体 struct sockaddr_in, struct sockaddr, struct in_addrstruct sockaddr_in, struct sockaddr,struct in_addr,这是网络编程中常用的结构体,每次都记不住...转载 2020-01-17 16:14:48 · 9752 阅读 · 0 评论 -
实用C函数集合
常用算法集合原创 2016-07-15 16:12:13 · 488 阅读 · 0 评论 -
中断处理函数的注意事项
中断处理函数的注意事项转载 2017-06-12 18:58:30 · 10165 阅读 · 0 评论 -
linux - echo
echo -e “abc\ndef”输出:abcdef-e表示启用解释反斜杠转义 默认为-E:禁用转义。echo本身默认最后会输出一个换行,要禁用最后的换行,可使用echo -n “abc”-n do not output the trailing newline echo功能说明:显示文字。语法:echo [-ne][字符串]或 echo [–help][–version]参数:-n原创 2016-05-20 17:57:39 · 459 阅读 · 0 评论 -
ARM处理器内核列表
源:https://zh.wikipedia.org/wiki/ARM%E8%99%95%E7%90%86%E5%99%A8%E5%85%A7%E6%A0%B8%E5%88%97%E8%A1%A8 markdown编辑器 Test 家族 架构 内核 特色 快取 (I/D)/MMU 常规 MIPS 于 MHz 应用 ARM1 ARMv1 ARM1 无原创 2016-05-16 12:19:48 · 2613 阅读 · 0 评论 -
FTP - WARNING! 137 bare linefeeds received in ASCII mode
FTP - WARNING! 137 bare linefeeds received in ASCII mode原创 2016-03-01 17:02:32 · 4516 阅读 · 0 评论 -
read( ) 函数 —— 终端输入设备的阻塞与非阻塞的设置
read( ) 函数 —— 终端输入设备的阻塞与非阻塞的设置转载 2015-12-30 19:50:00 · 15961 阅读 · 1 评论 -
函数注释参考样例
函数注释参考样例原创 2015-12-24 22:33:41 · 970 阅读 · 0 评论 -
预处理器指令 #include 、 #define
总结: #include、 #define 本质都是替换(replace),区别在于 #include 是替换文件内容到当前位置, #define 是替换常量内容到当前位置;转载 2015-05-14 16:38:07 · 2236 阅读 · 0 评论 -
51单片机 11.0592MHz 产生115200 波特率
51单片机 11.0592MHz 产生115200 波特率连接:http://homezzy.blog.hexun.com/29601793_d.html具体定义如下: SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。看表8-2串行口工作模式设置。转载 2015-05-14 12:21:31 · 22434 阅读 · 5 评论 -
Linux平台延时之sleep、usleep、nanosleep、select比较
Linux平台延时之sleep、usleep、nanosleep、select比较 1、sleep的精度是秒2、usleep的精度是微妙,不精确3、select的精度是微妙,精确struct timevaldelay;delay.tv_sec =0;delay.tv_usec =20 * 1000; // 20 msselect(0, NULL,NULL, NUL转载 2015-05-05 15:28:52 · 18292 阅读 · 0 评论 -
书单(待续)
1、Unix环境高级编程2、windows核心编程3、操作系统设计与实现4、原创 2015-05-05 15:20:20 · 450 阅读 · 0 评论 -
提取文本中任意 浮点数
//d.txt为下面一行内容:( 去掉前面的// )//01.2,3.45;5.6789 -0.12345678901234 abc 1234567890.123456789123456789 1e300 0#include int n,r;double d;FILE *f;void main() { f=fopen("d.txt","r"); n=0; whi转载 2015-04-28 09:52:52 · 1193 阅读 · 0 评论 -
函数getopt(),及其参数optind
函数getopt(),及其参数optind转载 2016-07-15 18:06:05 · 869 阅读 · 3 评论 -
通过CPU宏区分运行平台
通过CPU宏区分运行平台原创 2016-08-02 18:44:56 · 1175 阅读 · 0 评论 -
C语言中结构体与字符数组之间的相互转换
转载: https://blog.youkuaiyun.com/qq_31094099/article/details/80790346#include <stdio.h>#include <stdlib.h>#include <string.h> #pragma pack(push) //保存对齐状态 #pragma pack(1) typed...转载 2019-03-28 18:07:12 · 3679 阅读 · 0 评论 -
Makefile 中:= ?= += =的区别
FROM: https://www.cnblogs.com/wanghuaijun/p/8092747.html在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),...转载 2018-11-08 16:33:04 · 190 阅读 · 0 评论 -
在Linux下改变进程的优先级
作为多任务的操作系统,Linux内核为每个创建的进程分配时间片并根据其优先级进行调度。当进程被创建时,其对应的task_struct里包含了四个优先级:struct task_struct { …… int prio, static_prio, normal_prio; unsigned int rt...转载 2018-10-19 13:53:39 · 977 阅读 · 0 评论 -
如何在linux中设置线程的优先级
在linux下我们可以通过int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);来创建线程,但是如何设置线程的优先级呢?在讨论这个问题的时候,我们先要确定当前线程使用的调度策略,posix提供了int pt...转载 2018-10-18 11:15:54 · 2057 阅读 · 0 评论 -
Linux多线程学习 - sched_yield() CPU让权
FROM: https://blog.youkuaiyun.com/xiaoyeyopulei/article/details/7965533sched_yield()这个函数可以使 另一个级别等于或高于当前线程的线程先运行。如果没有符合条件的线程,那么这个函数将会立刻返回然后继续执行当前线程的程序。在成功完成之后返回零,否则返回-1.看下面一个实例#define _MULTI_THREADED#...转载 2018-09-21 14:16:09 · 3197 阅读 · 0 评论 -
UTF-8与UTF-8 without BOM
UTF-8编码的文件可以分为without BOM和BOM两种格式。何谓BOM? “EF BB BF” 这三个字节就叫BOM,BOM的全称叫做"Byte Order Mark". 在UTF-8文件中常用BOM来表明这个文件是UTF-8文件, 而BOM的本意是在UTF-16中用来表示高低字节序列的。在字节流之前有BOM表示采用低字节序列(低字节在前面),而UTF-8不用考虑字节序列,所以其实有无B...转载 2018-09-19 19:54:00 · 410 阅读 · 0 评论 -
gcc 库的链接顺序问题
FROM:https://www.cnblogs.com/ironx/p/4939508.html前言最近MIPS上开发一个程序,需要用到浮点运算。写好bootloader,main函数,在main函数调用log浮点运算,包含math库。然后再写好makefile,ld脚本。gcc的参数用到了: CFLAGS= -c -march=3081 -msoft-flo...转载 2018-08-03 17:17:04 · 2749 阅读 · 0 评论 -
Linux进程间通信——使用消息队列
Linux进程间通信——使用消息队列转载 2018-05-09 15:51:11 · 2245 阅读 · 0 评论 -
Linux定时器的使用
本文转载于http://hi.baidu.com/ljd_1986513/blog/item/d0bee6503f00d5113b293556.html使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,其实...转载 2018-03-22 15:00:17 · 627 阅读 · 0 评论 -
标准输入和标准输出的read_write
标准输入和标准输出的read_write转载 2017-03-20 15:59:46 · 2705 阅读 · 0 评论 -
函数的局部变量用作函数返回值
来源: http://www.cnblogs.com/Jezze/archive/2012/02/06/2340686.html 函数的局部变量用作返回值时,会生成一个局部变量的拷贝用作返回值,之后局部变量会被系统回收,函数不能返回局部变量的地址,因为如果返回局部变量的地址,系统回收后,指针指向的内容就无意义了,但是对于静态变量也可以返回其指针。#incl转载 2015-04-27 16:36:21 · 892 阅读 · 0 评论 -
Linux下用C语言设置和获取系统时间
一、Unix/Linux系统下有以下几种时间结构:1、time_t 类型:长整型,一般用来表示从1970-01-01 00:00:00时以来的秒数,精确度:秒;由函数time()获取;该类型定义在头文件 /usr/include/sys/time.h 中:#define _TIME_Ttypedef long time_t; #endif 函数转载 2015-04-27 16:30:23 · 10921 阅读 · 0 评论 -
获取主机硬件资源 函数
statfs()原创 2015-04-16 08:39:17 · 574 阅读 · 0 评论 -
造成segment fault,产生core dump的可能原因
1.内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符 c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp等字符串操作函数,将目标字符串读/写爆。应该使用strncpy, strlcpy, strncat, strlcat, snpr转载 2014-08-28 15:36:56 · 952 阅读 · 0 评论 -
OSI七层参考模型每一层都有哪些协议
OSI七层参考模型每一层都有哪些协议 第七层应用层 协议:DHCP • DNS • FTP • Gopher • HTTP • IMAP4 • IRC • NNTP • XMPP • POP3 • SIP • SMTP • SNMP • SSH • TELNET • RPC • RTCP • RTSP • TLS • SDP • SOAP • GTP • STUN • NTP转载 2014-07-10 16:57:59 · 5548 阅读 · 0 评论 -
对SPI、IIC、IIS、UART、CAN、SDIO、GPIO的解释
SPI(Serial Peripheral Interface:串行外设接口);SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连 接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通 信,当有多个从设备时,还可以增加一转载 2014-07-10 13:03:58 · 4598 阅读 · 0 评论 -
浅谈C中的malloc和free
原帖及讨论:http://bbs.bccn.net/thread-82212-1-1.html 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写转载 2014-07-09 09:48:38 · 517 阅读 · 0 评论 -
应用 Valgrind 发现 Linux 程序的内存问题
Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构转载 2014-07-09 10:06:02 · 491 阅读 · 0 评论 -
bcd(Binary-Coded Decimal缩写)
Binary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又转载 2014-07-03 17:17:07 · 2984 阅读 · 0 评论 -
GMT,UTC,DST,CST时间详解
全球24个时区的划分 相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究竟这24个时区是如何产生的?过去世界各地原本各自订定当地时间,但随着交通和电讯的发达,各地交流日益频繁,不同的地方时间,造成许多困扰,于是在西元1884年的国际会议上制定了全球性的标准时,明定以英国转载 2014-07-02 16:11:25 · 939 阅读 · 0 评论 -
pthread_create传递参数
#include #include using namespace std;pthread_t thread;void *fn(void *arg){ int i = *(int *)arg; cout<<"i = "<<i<<endl; return ((void *)0);}int main(){ int err1; int转载 2014-04-09 15:21:55 · 785 阅读 · 0 评论 -
大端与小端存储模式详解
端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big E转载 2014-04-04 17:48:44 · 950 阅读 · 0 评论 -
break,continue,return的区别
break,continue,return的区别最近总使用到这3个关键字,所以想总结一下他的用法. 1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出. 2)continue 也是终止当前的循环过程转载 2014-04-04 09:11:09 · 672 阅读 · 0 评论 -
C语言——定义&&声明
1.变量的定义&声明变量的声明有两种情况:一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。前者是“定义性声明(defining declaration)”或者称为“定义(definition)”,而后者是“引用性声明(referncing d转载 2014-04-03 15:59:20 · 1221 阅读 · 0 评论