Linux C
安河桥
这个作者很懒,什么都没留下…
展开
-
const char* 、char* const、 char const * 三者的区别
你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。什么是 CMake CMake就是针对上面问题所设计的工具:它首先允许.原创 2021-03-08 15:24:48 · 210 阅读 · 1 评论 -
C语言变量声明时加冒号的用法
【版权申明】转载请附上出处链接 C语言变量声明时加冒号的用法 有些信息在存储时,并不需要占用一个完整的字节, 而只需占一个或几个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。 所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。位域变量的定义与结构体变量原创 2020-05-28 15:47:24 · 3164 阅读 · 0 评论 -
socket编程常见函数
【版权申明】转载请附上出处链接 socket编程常见函数$man 2 socketNAME socket - create an endpoint for communicationSYNOPSIS #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protocol);RETURN VALU原创 2020-05-28 13:49:57 · 517 阅读 · 0 评论 -
socket编程中getaddrinfo与getnameinfo
【版权申明】转载请附上出处链接 socket编程中常见的函数与宏$man getaddrinfoNAME getaddrinfo, freeaddrinfo, gai_strerror - network address and service translationSYNOPSIS #include <sys/types.h> #include <sys/socket.h> #include <netdb.h原创 2020-05-28 09:44:29 · 776 阅读 · 0 评论 -
C语言中的%i
【版权申明】转载请附上出处链接 C语言中的%i%i的作用与%d一致,详情可见man 3 printfd, i The int argument is converted to signed decimal notation.The precision, if any, gives the minimum number of digits that must appear; if theconverted value requires fewer digits, it is pa原创 2020-05-27 08:58:48 · 5842 阅读 · 0 评论 -
socket编程中常见的数据结构
【版权申明】转载请附上出处链接 socket编程中常见的数据结构struct addrinfo#include <netdb.h>socket 网络信息相关结构体:/* Structure to contain information about address of a service provider. */struct addrinfo{ int ai_flags; /* Input flags. */ int ai_family原创 2020-05-26 17:09:40 · 714 阅读 · 0 评论 -
select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O multiplexing
【版权申明】转载请附上出处链接 select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O multiplexing/* According to POSIX.1-2001, POSIX.1-2008 */#include <sys/select.h>/* According to earlier standards */#include <sys/time.h>#include <s原创 2020-05-25 09:47:58 · 241 阅读 · 0 评论 -
C语言宏: #if/#elif、#ifdef、#if defined
#if的使用说明#if的后面接的是表达式#if (MAX10)||(MAX20) code… #endif它的作用是:如果(MAX10)||(MAX20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)#if defined的使用#if后面接的是一个宏。#if defined (x) …code… #endif这个#if defined它不管里面的“x”的逻辑是“真”还是“假”它只管这个程序的前面的宏定义里面有没有定义“x”这个宏,如果定原创 2020-05-24 01:48:50 · 13662 阅读 · 2 评论 -
Linux Signal信号表
【版权申明】转载请附上出处链接 Linux Signal的机制与使用机制:http://gityuan.com/2015/12/20/signal/https://colobu.com/2015/10/09/Linux-Signals/https://blog.csdn.net/yockie/article/details/51729774http://www.embeddedlinux.org.cn/html/xianchengjincheng/201009/02-875.htmlhttp原创 2020-05-22 11:43:19 · 5252 阅读 · 0 评论 -
Makefile备忘录
【版权申明】转载请附上出处链接 Makefile备忘录简洁, 个人备忘, 供各位快速查询.1. Makefile的自动变量变量名含义$@目标$^所有依赖$<第一个依赖2. Makefile的预定义变量变量名含义$(MAKE)当前make解释器的文件名$(MAKECMDGOALS)make的命令行参数(即make的目标及参数)$(MAKEFILE_LIST)当前make所需要处理的makefile文件列表原创 2020-05-10 13:32:15 · 238 阅读 · 0 评论 -
Linux时间结构体与函数
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) Linux时间结构体与函数clockid_t, struct timespecclock_getres(), clock_gettime(), clock_settime() - clock and time functions/** * 头文件 */#include <time.h>/** * 函数参数1. clockid_t clk_id * int类型变量, 表示是要操作的特定时钟的标识符 *原创 2020-05-09 09:42:08 · 544 阅读 · 0 评论 -
C语言内嵌汇编
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) C语言内嵌汇编文章内容学自狄泰软件学院的门徒计划个人备忘, 供大家参考1. 赋值代码: result = intput #include<stdio.h>int main(void){ int result = 0; int input = 1; asm volatile( // vola...原创 2020-05-07 17:19:43 · 851 阅读 · 0 评论 -
链接脚本初探
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) 链接脚本初探源码交代:原创 2020-05-07 15:36:05 · 537 阅读 · 0 评论 -
编译一个不带main()函数的应用程序
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) 编译一个不带main()函数的应用程序源码交代: $cat file.c #include<stdio.h>void func(void){ printf("hello\n");}int my_main(void){ func(); retur...原创 2020-05-07 11:20:58 · 2788 阅读 · 0 评论 -
Linux gcc论应用程序是如何跑起来的
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) Linux gcc论应用程序是如何跑起来的相信我, 我真的只写了file.c这一个文件.代码及编译指令交代:#include<stdio.h>void func(void){ printf("hello\n");}int main(void){ func();...原创 2020-05-07 10:59:39 · 483 阅读 · 0 评论 -
aarch64-linux-gnu-gcc的安装
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) aarch64-linux-gnu-gcc的安装通常我们在Ubuntu上使用gcc, 最终编出来的应用/库是x86或者x86_64的, 如果我们想编译arm64架构的, 该怎么做呢? 如下:arm架构的我们需要特定的交叉编译工具链, 这里以aarch64-linux-gnu-gcc为例, 如下所示:sudo apt-ge...原创 2020-04-30 14:48:17 · 16971 阅读 · 0 评论 -
Java SE 6/8 Downloads
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) Java SE 6/8 Downloads 最近在安装Android的编译工具链用到了Sun公司的JDK6, 因为每次都比较难找而且Sun公司被Oracle收购后下载需要注册用户, 因为是外网比较艰辛, 所以我这里把可能用到的JDK/JRE 6/8 Linux/Windows x86/x64都备份一下, 供自己和各位使用....原创 2020-04-10 09:32:34 · 1187 阅读 · 0 评论 -
ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。内存工作原理:内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即D原创 2020-02-27 15:55:21 · 1303 阅读 · 0 评论 -
屏幕的了解,为学习LCD做铺垫
以下内容主要源于朱有鹏《物联网大讲堂》课程的学习,已取得朱老师本人同意。同时本文还引用了一些博文的内容,在引用处已注明出处,如有侵权,请告知删除。主流显示设备 LCD(Liquid Crystal Display)俗称液晶. 液晶是一种材料,液晶这种材料具有一种特点:可以在电信号的驱动下液晶分子进行旋转,旋转时会影响透光性,因此我们可以在整个液晶面板后面用白光照(称为背光),可以通过不同电原创 2020-02-27 15:54:11 · 2460 阅读 · 0 评论 -
ARM扫盲,关于存储设备的了解
参考博文: 1、http://bbs.eeworld.com.cn/thread-375439-1-1.html 2、http://www.elecfans.com/bandaoti/cunchu/20120925290176.htmliNand、MoviNand、oneNand等nandflash的区别。一、iNANDiNAND是SanDisk公司研发的存储芯片,可以简单地看成SD卡或MMC卡原创 2020-02-27 15:53:51 · 660 阅读 · 0 评论 -
SLC、MLC和TLC三者的区别
SLC、MLC、TLC属于三种不同类型的NAND FLASH存储器,可以用来作为MP3播放器、移动存储盘等产品的存储介质。SLC=Single-LevelCell(单层单元),即1bit/cell,速度快寿命长,价格超贵(约MLC3倍以上的价格),约10万次擦写寿命 MLC=Multi-LevelCell(多层单元),即2bit/cell,速度一般寿命一般,价格一般,约3000—10000次擦写寿命原创 2020-02-27 15:53:23 · 11415 阅读 · 0 评论 -
软件工程师角度看MIPI协议
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) 软件工程师角度看MIPI协议一、MIPI的由来: 在手机行业的初期, 优胜劣汰适者生存的手机行业竞争激烈. 在这个过程中涌现出了许许多多不同的创新的点子, 例如摄像头的接口, 由于每个厂商不存在统一的规范, 不同的摄像头模组厂商可能会使用的不同的接口, 在做适配的时候极其不方便以及个别接口非常不好用(接口技术碎片化导致集...原创 2020-02-12 10:29:47 · 1179 阅读 · 0 评论 -
C语言 可变参数函数
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) C语言 可变参数函数可变参数函数,即参数个数可变的函数。/* * [返回值] [函数名](固定参数m个, 可变参数n个) * 其中,m>=1, n>=0, 即: */// 至少需要一个固定参数,否则你怎么定位到参数呢?固定参数的声明与普通函数参数相同// 可选参数由于数目不定(0个或以上),声明时...原创 2020-02-12 10:08:27 · 839 阅读 · 0 评论 -
Linux-C 最正确的取最大最小值宏
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) Linux-C 最正确的取最大最小值宏这里以两个值中取最小值为例: #define min_t(type, x, y) \({ type __x=x; type __y=y; __x<__y? __x:__y })GNU C把包含在括号中的复合语句看成是一个表达式, 称为语句表达式, 它可以出现在任何允许表达式...原创 2020-02-10 21:42:05 · 1058 阅读 · 0 评论