文章分类 -  C

摘要:https://www.kernel.org/https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.293.tar.xz 编译64位arm内核 sudo apt-get install gcc-aarch64-linux-gnucp ./arc 阅读全文
posted @ 2021-11-30 19:07 牧 天 阅读(1795) 评论(0) 推荐(1) 编辑
摘要:#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个参数 阅读全文
posted @ 2019-08-12 15:51 牧 天 阅读(408) 评论(0) 推荐(0) 编辑
摘要:1、标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。2、C/C++ 中使用正则表达式一般分为三步:1)编译 阅读全文
posted @ 2017-10-27 19:22 牧 天 阅读(642) 评论(0) 推荐(0) 编辑
摘要:%[ ] 的用法: %[ ] 表示要读入一个字符集合 , 如果 [ 后面第一个字符是 ”^” ,则表示反意思。 [ ] 内的字符串可以是 1 或更多字符组成。空字符集( %[] )是违反规定的,可 导致不可预知的结果。 %[^] 也是违反规定的。 %[a-z] 读取在 a-z 之间的字符串,如果不在 阅读全文
posted @ 2017-10-27 09:58 牧 天 阅读(1100) 评论(0) 推荐(0) 编辑
摘要:CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立 阅读全文
posted @ 2017-09-27 17:39 牧 天 阅读(418) 评论(0) 推荐(0) 编辑
摘要:c00390379@u138-103:~/aosp/external/hello$ lsAndroid.mk Application.mk hello.c Application.mk out/target/product/generic_arm64/system/bin/hello C:\User 阅读全文
posted @ 2017-09-25 15:07 牧 天 阅读(627) 评论(0) 推荐(0) 编辑
摘要:一、如何产生不可预见的随机序列呢 利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand( 阅读全文
posted @ 2017-04-26 11:13 牧 天 阅读(1759) 评论(0) 推荐(0) 编辑
摘要:调用格式化I/O函数时,不要直接或者间接将用户输入作为格式化字符串的一部分或者全部printf(input); //不允许将用户输入直接作为格式字符串printf(“%s”, input); //推荐的方式 sprintf( buffer, "Usage: %s argument\n", argv[ 阅读全文
posted @ 2017-02-27 21:56 牧 天 阅读(276) 评论(0) 推荐(0) 编辑
摘要:strncpy、strncat等带n版本的字符串操作函数在源字符串长度超出n标识的长度时,会将包括’\0’结束符在内的超长字符串截断,导致’\0’结束符丢失。这时需要手动为目标字符串设置’\0’结束符。strcpy() sprintf() strcat() 存在安全隐患, 其对应的安全版为:strn 阅读全文
posted @ 2017-01-07 17:52 牧 天 阅读(774) 评论(0) 推荐(0) 编辑
摘要:野指针指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。 1. 指针变量未初始化 任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气 阅读全文
posted @ 2016-12-08 10:13 牧 天 阅读(226) 评论(0) 推荐(0) 编辑
摘要:int a[]; 一维数组类似于指针, 本质上和一个int类型的指针很像 int a[][];二维数组类似于指向一维数组的指针和指针的组合。指向一维数组的指针用于检索行。 阅读全文
posted @ 2016-12-07 10:34 牧 天 阅读(105) 评论(0) 推荐(0) 编辑
摘要:sizeof有两种用法: (1)sizeof(object) 也就是对对象使用sizeof,也可以写成sizeof object 的形式。 例如:sizeof(2) 或者sizeof 2 (2)sizeof(typename) 也就是对数据类型使用sizeof,注意这种情况下写成sizeof typ 阅读全文
posted @ 2016-12-06 11:14 牧 天 阅读(110) 评论(0) 推荐(0) 编辑
摘要:int nNetTimeout=1000;//1秒,//设置发送超时setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO, (char *)&nNetTimeout,sizeof(int));//设置接收超时setsockopt(socket,SOL_SOCKET,SO_ 阅读全文
posted @ 2016-11-04 10:39 牧 天 阅读(184) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #include #include #include #include #define BUFSIZE 0xF000 void geturl(char* url) { int cfd; ... 阅读全文
posted @ 2016-06-14 21:35 牧 天 阅读(1144) 评论(0) 推荐(0) 编辑
摘要:#error命令是C/C++语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。 由于它是c语言中的宏,所以它是在编译的时候就会出错,而不是运行时出错。 mutian@mutian:~/test/test$ gcc test.c test.c: In fu 阅读全文
posted @ 2016-04-27 15:50 牧 天 阅读(203) 评论(0) 推荐(0) 编辑
摘要:ar用途: 维护链接编辑器使用的索引库。 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了 按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。 阅读全文
posted @ 2016-04-24 12:04 牧 天 阅读(230) 评论(0) 推荐(0) 编辑
摘要:Elf64_Ehdr描述elf header .shstrtab段包含的是段表需要的字符串,分析.shstrtab段的内容 以002e开始一个字符串,取字符串的时候只需要知道字符串在该表中的偏移地址即可。 每个目标文件都会有一个符号表(Symbol Table), 也就是.strtab段.strta 阅读全文
posted @ 2016-04-21 17:34 牧 天 阅读(590) 评论(0) 推荐(0) 编辑
摘要:C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4 阅读全文
posted @ 2016-04-20 21:31 牧 天 阅读(121) 评论(0) 推荐(0) 编辑
摘要:175 + 8 + 4 = 187 = 0xbb//175 = 0x53 + 0x4 + 0x58 why? .eh_frame: When gcc generates code that handles exceptions, it produces tables that describe ho 阅读全文
posted @ 2016-04-20 17:04 牧 天 阅读(377) 评论(0) 推荐(0) 编辑
摘要:在低内存模式中,Dalvik虚拟机假设对象不会马上就使用分配到的内存,因此,它就通过系统接口madvice和MADV_DONTNEED标志告诉内核,刚刚分配出去的内存在近期内不会使用,内核可以该内存对应的物理页回收。当分配出去的内存被使用时,内核就会重新给它映射物理页,这样就可以做按需分配物理内存, 阅读全文
posted @ 2016-04-01 19:50 牧 天 阅读(6233) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示