摘要: open: 不需要同步 fopen: 会申请一块缓存区,减少用户频繁切换到内核态;会先写入到缓存区,通过flush进行同步。可选择同步/非同步模式。 阅读全文
posted @ 2023-04-18 14:30 爱喝拿铁 阅读(151) 评论(0) 推荐(0)
摘要: C的虚拟内存区域划分 Code Area(代码区):程序代码指令、常量字符串,只可读。 Static Area(静态区、全局区):存放全局变量/常量、静态变量/常量。 该区域的大小在程序一加载进内存的时候就已固定,但是静态变量的值是可以改的。 Heap(堆):由程序员控制,使用malloc/free 阅读全文
posted @ 2023-04-18 14:30 爱喝拿铁 阅读(195) 评论(0) 推荐(0)
摘要: 转移表就是一个函数指针数组; 前提是需要操作符代码必须是从0开始的整数。 #include <stdio.h> /* 本测试用例用于说明转移表的作用 */ typedef int (*PFun)(int, int); int add(int a, int b) { return a + b; } i 阅读全文
posted @ 2023-04-18 14:27 爱喝拿铁 阅读(68) 评论(0) 推荐(0)
摘要: 作用 为一种类型引入新名字,但是不分配空间 struct 比较合规的用法: struct TAG { int a; } struct TAG veg; 如果使用typedef,可以省略声明过程中的struct,但是这个关键字具有提示作用,没有必要省略 typedef struct TAG //TAG 阅读全文
posted @ 2023-04-18 14:27 爱喝拿铁 阅读(99) 评论(0) 推荐(0)
摘要: 运行参数 输出xml报告 GTEST_SAMPLE --gtest_output="xml:rr.xml" & 阅读全文
posted @ 2023-04-18 14:26 爱喝拿铁 阅读(73) 评论(0) 推荐(0)
摘要: GTest 中断言的宏可以分为两类: ASSERT_* 的断言:当检查点失败时,退出当前函数; EXPECT_* 的断言:当检查点失败时,继续往下执行,最后在结果中输出期望值和实际值。 一般 EXPECT_* 更常用,它可以输出测试的多个失败,常用的断言如下,包括布尔类型、整数类型、浮点类型、字符串 阅读全文
posted @ 2023-04-18 14:25 爱喝拿铁 阅读(739) 评论(0) 推荐(0)
摘要: check in 添加.a等被忽略的文件 svn add file --no-ignore --force check out 签出指令:svn co url filename 签出空文件夹指令:svn co --depth=empty url filename 阅读全文
posted @ 2023-04-18 14:24 爱喝拿铁 阅读(21) 评论(0) 推荐(0)
摘要: 线程的生命周期 就绪——运行——阻塞——终止——回收 pthread_create 该方式创建的线程在Linux中又被叫做轻量级线程LWP pthread_detach 用于让线程进入回收态; pthread_exit pthread_exit(void retval); retval 是 void 阅读全文
posted @ 2022-01-06 20:14 爱喝拿铁 阅读(248) 评论(0) 推荐(0)
摘要: 原因 在windows环境下,回车是/r/n (CR LF) 在linux环境下,回车是/n (LF) 当在windows系统中,使用vim打开文档,行尾的/r就会显示成^M 由于vim的对齐规则会受^M影响,因此需要去除; 解决 去除方式: :%s/\r$//g source insight设置 阅读全文
posted @ 2022-01-06 16:22 爱喝拿铁 阅读(453) 评论(0) 推荐(1)
摘要: size_t/ssize_t 在32位架构中被定义为: typedef unsigned int size_t; typedef int ssize_t; 在64位架构中被定义为: typedef unsigned long size_t; typedef long ssize_t; 结论:size 阅读全文
posted @ 2021-11-18 18:43 爱喝拿铁 阅读(46) 评论(0) 推荐(0)