安装中文
yum install “@Chinese Support”
头文件: #include<sys/epoll.h>
可以通过man epoll查看对应的帮助信息
最大描述符限制:/proc/sys/fs/epoll/max_user_watches
|
|
epoll_create中,size只是给内核的一个维数提示,并不是队列中的最大数,Now days, size is ignored since Linux 2.6.8
epoll_create1中flag取值如下:
|
|
参数说明:
|
|
其中events可以包含以下事件类型:
|
|
参数说明:
some problems:
关于水平触发(Level-Triggered)和边缘触发(Edge-Triggered)
当缓冲区有数据可读时,ET会触发一次事件,之后就不会再触发;而LT只要我们没有读完缓冲区的数据,事件就会一直触发。
推荐使用的epoll ET方式如下:
|
|
|
|
mac os不支持epoll,其使用kqueue实现(类似epoll),头文件 sys/event.h
link:https://zhuanlan.zhihu.com/p/21375144
参考博客:Linux epoll 详解
mapleader = “;”
在工程目录下创建workspace.vim配置文件,其中可以设置项目path等信息
vimrc中配置自动打开,可以使用
自动导入工程目录下的cscope.out文件
set cscopequickfix=s-,c-,d-,i-,t-,e- 使用quickfix窗口显示搜索结果
浏览结束后按
快捷操作:
如果每次查找都要输入一长串命令的话还真是件讨人厌的事情, Cscope的帮助
手册中推荐了一些快捷键的用法, 下面是其中一组, 也是我用的, 将下面的内容添
加到~/.vimrc中, 并重启vim:
|
|
当光标停在某个你要查找的词上时, 按下
nomal状态了
buffer间切换 —— ctrl+Tab(向后),ctrl+shift+Tab(向前)
感觉这个插件和cscope功能有重叠的部分
|
|
使用ctags命令:ctags -R . 命令生成tags文件,然后使用set tags=tags导入,可以使用vimrc设置自动导入
项目中,当打开的文件太多说,知道当前打开的文件名是一项有用的功能,这个可以通过minibufexpl实现,效果如下:
vim中可以使用lookupfile插件进行tag, buffer, 文件及目录搜索,其对应的指令分别如下:
如果你需求查找函数调用或者变量使用的地方,ctags就无能为力了,这时候就得用cscope了。
用法:
cscope默认只生成.c文件的索引,如果是c++或者java等其他语言,需要自行增加索引文件表。可以使用如下命令:find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
cscope -bkq -i cscope.files
然后在工程vim中执行: cscope add cscope.out
,导入cscope索引。之后就可以使用cscope操作了,其操作命令如下:
man cscope或者vim中执行help cscope
|
|
使用时,可以把cscope的查找结果输出到quickfix窗口,需要在~/.vimrc中加入下面这行:
set cscopequickfix=s-,c-,d-,i-,t-,e-
p.s:
打开quickfix —— copen
关闭quickfix —— cclose
查找下一个 —— cn
查找上一个 —— cp
浏览位置间跳转 —— ctrl+o(往前),ctrl+i(往后)
未完待续
可以点击my vimrc访问我的vimrc配置
openssl ca -revoke newcerts/username.pem -config openssl.cnf
openssl ca -config openssl.cnf -gencrl -out crl/ca.crl
openssl verify -CAfile cacert.pem servercert.pem
openssl genrsa -out rsa_private_key.pem 1024
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
openssl rsa -in rsa_private_key.pem -text -noout
示例如下,其中生成的moduls前两位需要去掉:
|
|
百度网盘下载链接(链接: https://pan.baidu.com/s/1kUQA5jL 密码: c4wi)
证书认证的场景中,TLS使用的很广泛,其实现可以参考上面的电子书或者Openssl中的s_server和s_client的实现,亦或事Syslog-ng中的实现
Makefile作为Linux下的源码编译规则说明,配合make命令使用,可以快速编译出库及可执行文件。经过整理,已经将一个简单工程的Makefile代码归档到github上,工程代码及Makefile见:
工程中包含三个Makefile(最外层的称为总控makefile),各个makefile中有相关的注释说明,有需要的自行到https://github.com/chhy2009/Makefile-template.git 下载。
make install 时指定安装路径:export DESTDIR=install_dir
, 然后 make install
make时存在库依赖问题,解决方法如下:export PKG_CONFIG_PATH=/.../software_name/lib/pkgconfig/
即设置被依赖库路径到PKG_CONFIG_PATH变量
由源文件直接编译gcc–shared –fpic –o libtest.so test.c
由.o文件编译gcc -shared *.o -o libtest.so
先gcc源文件为.o,再执行 ar –rc libtest.a .o打包成静态库
一般来说,如果访问不了某个URL的话,可能是网络存在某些问题,这时可以用下面的步骤进行排查:
另外,介绍下网络相关的其它命令: