epoll_create
#include <sys/epoll.h>
int epoll_create(int size);
epoll_create()创建一个新的epoll对象,并返回一个文件描述符指向该epoll对象。
size表示,该epoll对象可能要监听的文件描述符数量,内核会使用该建议值分配内部的数据结构,当然之后如果空间不够用,内核会分配更多的空间。
linux2.6.8之后,size参数被忽略(但是仍然必须大于0)。
参考epoll_create - Linux manual page - man7.org
epoll_ctl
#include <sys/epoll.h>
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
epfd即epoll_create返回的描述符,用于管理用户关心的文件描述符。epoll_ctl用于添加、修改、删除epoll对象中的fd及该fd关联的事件监听。
op的值:
- EPOLL_CTL_ADD
- EPOLL_CTL_MOD
- EPOLL_CTL_DEL
event的定义
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
struct epoll_event {
uint32_t events; // Epoll Events
epoll_data_t data; // User Data Variable
}
成员events的值
- EPOLLIN 可读
- EPOLLOUT 可写
- EPOLLET 设置边缘触发。默认水平触发
- ...其他
epoll_wait
#include <sys/epoll.h>
int epoll_wait(int epfd, struct epoll_event *events, int maxevents, i
pre
- 安装
tex live
并配置全局环境变量 - 安装
vscode
禁用fcitx的虚拟键盘
fcitx的虚拟键盘会占用编辑快捷键ctrl+alt+b
vscode 安装
安装插件Latex Workshop
magic comment
行首加上
% !TEX program = xelatex
指定xelatex
编译
这是使用xelatex > bibtex > xelatex > xelatex
过程编译。如果不加则默认使用pdflatex。
官方文档中不建议这么做,兼容性成疑,这里使用下面介绍的方式
配置xelatex工具链
打开setting.json,加入
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOC%"
]
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "pdflatex",
"command": "pdflatex
安装aria2
sudo add-apt-repository ppa:t-tujikawa/ppa
sudo apt-get update
sudo apt-get install aria2
安装tampermonkey扩展
chrome插件地址 tampermonkey
aria2c直接下载
aria2c 后面跟上下载链接即可
aria2c "download.url"
pre
目的: 在ubuntu搭建基于xelatex的论文编写环境
手段:
- 通过安装tex live 安装xelatex
tex live 安装
clean
如果上一次安装失败,则清理上一次遗留的安装文件
rm -rf /usr/local/texlive/2018
rm -rf ~/.texlive2018
下载iso
打开 http://tug.org/texlive/acquire-iso.html,点击download from a nearby CTAN mirror
,下载iso文件
挂载镜像并安装
sudo mount texlive2018-20180414.iso /mnt/
cd /mnt/
sudo ./install-tl
config
修改 /etc/profile,更改环境变量PATH
export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2018/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2018/texmf-dist/doc/info:$INFOPATH
texmaker 安装
sudo apt install texmaker
或者使用TexWorks
sudo apt install texworks
测试
\documentclass{article}
\begin{document}
sdfasfdasd
\end{document}
中文支持
\documentclass[UTF8]{ctexart}
\begin{document}
你好,world撒旦啊!
\end{document}
前言
最近在读陈硕的moduo网络库的书,记录总结一些东西。
本章内容主要介绍muduo网络库的简单使用和muduo多线程模型,以及比较muduo网络库和其他一些网络库的性能。muduo网络库的使用在此不赘述,和大部分网络库使用差不多。本章内容中让我收获比较大的是,6.6节在详解muduo多线程模型时,比较了常见的并发网络服务程序设计方案。读完这章的我有一个巨大的疑问,就是到底应该如何有效的提高并发连接数?这个问题暂时还没想的太明白
常见的并发网络服务程序设计方案
陈硕在附录A中举了三大TCP网络编程案例:echo服务器、chat聊天/聊天室以及proxy代理服务器。