不灭的火

革命尚未成功,同志仍须努力:加密SHA/AES/RSA下载JDK17

作者:AlbertWen  添加时间:2017-10-18 17:14:50  修改时间:2025-09-15 01:18:04  分类:13.C/C++/Rust/仓颉  编辑

我用的是 cmake 编译,增加参数 -fgnu89-inline ,参考代码如下:

add_definitions(-fgnu89-inline)

参考:cmake参数 与 命令详解

 

作者:AlbertWen  添加时间:2017-12-13 14:45:24  修改时间:2025-09-18 09:47:19  分类:13.C/C++/Rust/仓颉  编辑

sizeof是何方神圣?sizeof乃C/C++中的一个操作符(operator)是也,简单的说,其作用就是返回一个对象或者类型所占的内存字节数。

作者:AlbertWen  添加时间:2017-10-26 18:15:27  修改时间:2025-09-15 02:27:43  分类:13.C/C++/Rust/仓颉  编辑

条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,条件变量被用来进行线承间的同步。

作者:AlbertWen  添加时间:2017-10-26 14:29:55  修改时间:2025-09-16 15:31:04  分类:13.C/C++/Rust/仓颉  编辑

提问一:

Linux IO多路复用有 epoll, poll, select,知道epoll性能比其他几者要好。也在网上查了一下这几者的区别,表示没有弄明白。

IO多路复用是什么意思,在实际的应用中是指什么情况?

以及IO多路复用在一些异步web server中的实际应用,就好比nginx是怎样使用epoll来实现异步IO处理的,一个请求到来了,nginx使用epoll接收请求的过程是怎样的?

作者:AlbertWen  添加时间:2019-08-29 10:09:06  修改时间:2025-09-15 22:02:34  分类:13.C/C++/Rust/仓颉  编辑
作者:AlbertWen  添加时间:2015-10-24 09:15:50  修改时间:2025-09-15 17:42:18  分类:13.C/C++/Rust/仓颉  编辑

安装参数:

--openssldir=OPENSSLDIR

    安装目录,默认是 /usr/local/ssl 。

--prefix=PREFIX

    设置 lib include bin 目录的前缀,默认为 OPENSSLDIR 目录。

作者:AlbertWen  添加时间:2015-11-22 17:45:13  修改时间:2025-09-18 03:53:46  分类:13.C/C++/Rust/仓颉  编辑

如何查看 glib库 的版本号?

因为 ldd 命令是 glibc 提供的,所以也可通过它来查看 glib版本号: ldd --version 

作者:AlbertWen  添加时间:2016-01-28 17:28:27  修改时间:2025-09-09 03:42:52  分类:13.C/C++/Rust/仓颉  编辑

本小节描述了使用cmake构建Hello World程序的全部过程,并介绍了三个简单的指令:PROJECT/MESSAGE/ADD_EXECUTABLE以及变量调用的方法,同时提及了两个隐式变量<projectname>_SOURCE_DIR<projectname>_BINARY_DIR,演示了变量调用的方法,从这个过程来看,有些开发者可能会想,这实在比我直接写Makefile要复杂多了,甚至我都可以不编写Makefile,直接使用gcc main.c即可生成需要的目标文件。是的,正如第一节提到的,如果工程只有几个文件,还是直接编写Makefile最简单。但是,kdelibs压缩包达到了50多M,您认为使用什么方案会更容易一点呢?

作者:AlbertWen  添加时间:2016-04-04 22:35:12  修改时间:2025-09-15 13:33:47  分类:13.C/C++/Rust/仓颉  编辑

传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。这意味着只需要访问这个对象的函数才有访问权限,而且也不需要复制对象。

作者:AlbertWen  添加时间:2019-09-08 23:33:00  修改时间:2025-09-09 03:42:59  分类:13.C/C++/Rust/仓颉  编辑
int accept(int s, struct sockaddr *addr, int *addrlen);

accept()用来接受参数s 的socket 连线。参数s 的socket 必需先经bind()、listen()函数处理过,当有连线进来时accept()会返回一个新的socket 处理代码,往后的数据传送与读取就是经由新的socket处理,而原来参数s 的socket 能继续使用accept()来接受新的连线要求。