摘要: # 线程 新线程拥有自己的栈,因此有自己的局部变量,如:线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量、线程私有数据。但与创建者共享全局变量、文件描述符、信号处理函数和当前目录状态。Linux线程与POSIX标准线程存在一定细微区别,最明显的是信号处理部分。差别大都受底层L 阅读全文
posted @ 2022-06-16 09:42 某某人8265 阅读(47) 评论(0) 推荐(0) 编辑
摘要: socket 创建socket时先给进程分配一个类似文件描述符的资源,不能进程间共享。接下来会给套接字起名,本地套接字的名字时Linux文件系统中的文件名,一般在 /usr 或 /usr/tmp 目录中。它的名字是与客户连接的特定服务标识符,端口号或访问点。我们用bind 给套接字命名,然后等待客户 阅读全文
posted @ 2022-06-16 09:42 某某人8265 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 调试 gcc -Wall -pedantic -ansi -Wall 参数表示输出所有警告, -pedantic -ansi 表示严格遵循语法规则。 取样法调试程序 宏定义 当定义宏DEBUG时才输出调试信息,如编译器标志 -DDEBUG #ifdef DEBUE printf("variable 阅读全文
posted @ 2022-06-16 09:41 某某人8265 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 进程及通信 | STAT代码 | 说明 | | : : | | | S | 睡眠状态,等待某个事件发生,如信号 | | R | 运行。严格说“可运行” | | D | 不可中断的睡眠(等待)。通常是等待输入输出 | | T | 停止 | | Z | 死进程 僵尸进程 | | N | 低优先级任务,n 阅读全文
posted @ 2022-06-16 09:41 某某人8265 阅读(122) 评论(1) 推荐(0) 编辑
摘要: 数据库 dbm 数据库 Linux自带的适合存储比较静态的索引化数据。适用于被频繁访问但很少修改的数据,创建慢,检索快。dbm数据库存在不同的版本,有两套使用接口分为由X/Open组织标准化的ndbm和原始的gdbm。 安装 apt install libgdbm-dev 使用 不同Linux发行版 阅读全文
posted @ 2022-06-16 09:40 某某人8265 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 数据管理 内存管理 #include <stdlib.h> void *malloc(size_t size); void *calloc(size_t number_of_elements, size_t element_size); // 为一个数组分配内存,该空间的每个bite都初始化为0 v 阅读全文
posted @ 2022-06-16 09:40 某某人8265 阅读(71) 评论(0) 推荐(0) 编辑
摘要: Linux 环境 程序参数 int main(int argc, // 参数数量 char const *argv[] // 字符串数组,第一个是调用程序的名称 ) { for (int i = 0; i < argc; ++i) { if (argv[i][0] == '-') { std::co 阅读全文
posted @ 2022-06-16 09:39 某某人8265 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 终端 对终端读写 getchar() printf() // 用于查看标准输出是否被重定向,如果打开的文件描述符fd连接到一个终端,返回1,否则返回0 #include <unistd.h> int isatty(int fd); int main(int argc, char const *arg 阅读全文
posted @ 2022-06-16 09:39 某某人8265 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 文件操作 5 个基本函数:open、close、read、write、ioctl(把控制信息传递给设备驱动程序) 比较重要的设备文件3个 /dev/console /dev/tty /dev/null 文件系统 一个磁盘可以分为一个或多个分区,每个分区有自己的文件系统。 多个目录项可以指向同一个i节 阅读全文
posted @ 2022-06-16 09:38 某某人8265 阅读(101) 评论(0) 推荐(0) 编辑
摘要: shell 变量 声明时直接使用,使用时加上$ var="hello world" echo $var 使用read进行输入 >> read var abc def >> echo $var abc def 引号 $foo 这种变量在不同的引号中起不同作用。 foo="Hi there" echo 阅读全文
posted @ 2022-06-16 09:38 某某人8265 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 容器 课程中使用了 gcc 2.9,旧版本中继承关系更少,代码更简洁。更容易阅读,且原理相同 容器 Containers 序列容器 Sequence Containers Array Vector 尾端可扩充的数组 Deque 双端可扩充的数组 List 双向队列 Forward-List 单向队列 阅读全文
posted @ 2022-06-16 09:33 某某人8265 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Object 对象模型 构造函数与析构函数的顺序: 继承关系:构造由上向下,析构由下向上 组合关系:构造由内向外,析构由外向内 关于vptr和vtbl 虚指针和虚函数表 class A { public: virtual void vfunc1() {}; virtual void vfunc2() 阅读全文
posted @ 2022-06-16 09:30 某某人8265 阅读(39) 评论(0) 推荐(0) 编辑
摘要: C++ 转型函数 class MyClass { public: /* 转型函数 函数名为 operator + 目标数据类型 没有参数与返回值 注意加 const 此处为强转为double类型 */ operator double() const {//将此类型转为其他类型 return stat 阅读全文
posted @ 2022-06-16 09:28 某某人8265 阅读(52) 评论(0) 推荐(0) 编辑
摘要: C++ 2.0 nullptr 空指针 void f(int); void f(void*); f(0); // 调用 1 f(NULL); // 模糊不定,报错 f(nullptr); // 调用 2 auto 自动推导类型 推导变量类型 auto i = vec.begin(); // 编译器推 阅读全文
posted @ 2022-06-16 09:27 某某人8265 阅读(28) 评论(0) 推荐(0) 编辑
摘要: C++ 参数初始化 为 const 成员变量初始化 参数初始化顺序与初始化表列出表量的顺序无关,参数初始化顺序只与成员变量在类中声明的顺序有关 class book { public: book(char* a, double p); private: const char* title; doub 阅读全文
posted @ 2022-06-16 09:24 某某人8265 阅读(23) 评论(0) 推荐(0) 编辑