不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2017-12-13 00:06:42  修改时间:2024-05-11 00:47:22  分类:C/C++/Rust  编辑

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。

作者:Albert.Wen  添加时间:2017-10-26 17:38:01  修改时间:2024-05-02 11:15:08  分类:C/C++/Rust  编辑

一、puts() 函数详解

puts()函数用来向 标准输出设备 (屏幕)写字符串并换行,调用格式为:

puts(s);

其中s为字符串变量(字符串数组名或字符串指针)。

作者:Albert.Wen  添加时间:2017-12-13 00:49:11  修改时间:2024-05-11 05:05:10  分类:C/C++/Rust  编辑

malloc与calloc用来动态分配内存空间,而realloc则是对给定的指针所指向的内存空间进行扩大或者缩小。

作者:Albert.Wen  添加时间:2017-10-26 14:25:26  修改时间:2024-05-14 20:59:26  分类:C/C++/Rust  编辑

若子进程先于父进程结束时,父进程调用wait()函数和不调用wait()函数会产生两种不同的结果:

--> 如果父进程没有调用wait()和waitpid()函数,子进程就会进入僵死状态。

--> 如果父进程调用了wait()和waitpid()函数,就不会使子进程变为僵尸进程。

这是为什么呢?现在我们来深入学习wait()函数和waitpid()函数。

作者:Albert.Wen  添加时间:2017-10-26 14:28:46  修改时间:2024-05-15 21:17:15  分类:C/C++/Rust  编辑
作者:Albert.Wen  添加时间:2016-04-14 21:27:32  修改时间:2024-04-19 01:31:54  分类:C/C++/Rust  编辑

在声明函数形参时,作为类型分类的数组,可以被解读成指针。

void func(int a[]) {
}

可以被自动地解读为

void func(int *a) {
}

要点

只有在声明函数形参的情况下,int a[] 和 int *a 才具有相同的意义。

作者:Albert.Wen  添加时间:2016-01-30 14:29:41  修改时间:2024-05-12 06:01:43  分类:C/C++/Rust  编辑

make 是一个命令,用来解析 makefile 文件;makefile 是一个文件,用来告诉 make 命令,如何编译整个工程,生成可执行文件。

作者:Albert.Wen  添加时间:2016-01-28 10:25:43  修改时间:2024-04-28 01:49:38  分类:C/C++/Rust  编辑

Automake

Automake是一个从文件 Makefile.am 自动生成 Makefile.in 的工具。每个 Makefile.am 基本上是一系列 make 的宏定义 (make规则也会偶尔出现)。生成的 Makefile.in 服从 GNU Makefile 标准。GNU Makefile 标准文档长、复杂,而且会发生改变。Automake 的目的就是解除个人GNU维护者维护 Makefile 的负担 (并且让Automake的维护者来承担这个负担)。

作者:Albert.Wen  添加时间:2016-04-02 11:29:19  修改时间:2024-05-18 04:37:42  分类:C/C++/Rust  编辑

strdup() 不是标准的 C 函数。strdup() 在内部调用了 malloc() 为变量分配内存,不需要使用返回的字符串时,需要用 free() 释放相应的内存空间,否则会造成内存泄漏。

作者:Albert.Wen  添加时间:2017-12-13 00:40:57  修改时间:2024-05-13 14:53:50  分类:C/C++/Rust  编辑

epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目非常大,与旧的 select 和 poll 系统调用完成操作所需 O(n) 不同, epoll能在O(1)时间内完成操作,所以性能相当高),epoll 与 FreeBSD的kqueue类似,都向用户空间提供了自己的文件描述符来进行操作。