? linux ?    发布于 2019-07-31   629人围观   0条评论

epoll_create

  1. #include <sys/epoll.h>
  2. 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

  1. #include <sys/epoll.h>
  2. 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的定义

  1. typedef union epoll_data {
  2. void *ptr;
  3. int fd;
  4. uint32_t u32;
  5. uint64_t u64;
  6. } epoll_data_t;
  7. struct epoll_event {
  8. uint32_t events; // Epoll Events
  9. epoll_data_t data; // User Data Variable
  10. }

成员events的值

  • EPOLLIN 可读
  • EPOLLOUT 可写
  • EPOLLET 设置边缘触发。默认水平触发
  • ...其他

参考epoll_ctl - Linux manual page - man7.org

epoll_wait

  1. #include <sys/epoll.h>
  2. int epoll_wait(int epfd, struct epoll_event *events, int maxevents, i
查看更多
? linux ? ? vscode ? ? xelatex ?    发布于 2019-05-09   405人围观   0条评论

pre

  • 安装tex live并配置全局环境变量
  • 安装vscode

禁用fcitx的虚拟键盘

title

fcitx的虚拟键盘会占用编辑快捷键ctrl+alt+b

vscode 安装

安装插件Latex Workshop

title

magic comment

行首加上

  1. % !TEX program = xelatex

指定xelatex编译

这是使用xelatex > bibtex > xelatex > xelatex过程编译。如果不加则默认使用pdflatex。

官方文档中不建议这么做,兼容性成疑,这里使用下面介绍的方式

配置xelatex工具链

打开setting.json,加入

  1. "latex-workshop.latex.tools": [
  2. {
  3. "name": "latexmk",
  4. "command": "latexmk",
  5. "args": [
  6. "-synctex=1",
  7. "-interaction=nonstopmode",
  8. "-file-line-error",
  9. "-pdf",
  10. "%DOC%"
  11. ]
  12. },
  13. {
  14. "name": "xelatex",
  15. "command": "xelatex",
  16. "args": [
  17. "-synctex=1",
  18. "-interaction=nonstopmode",
  19. "-file-line-error",
  20. "%DOC%"
  21. ]
  22. },
  23. {
  24. "name": "pdflatex",
  25. "command": "pdflatex
查看更多
发布于 2019-05-05   169人围观   0条评论

冒泡排序

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. /**
  5. * 冒泡排序
  6. * 平均时间复杂度: O(n^2)
  7. * 最坏时间复杂度: O(n^2)
  8. * 最好时间复杂度: 可以立一个flag标记有没有发生交换,如果有序,则不再继续冒泡,所以复杂度可以有O(n)
  9. * 空间复杂度: O(1)
  10. * 稳定性: 稳定
  11. * 排序方式: In-place
  12. * @param arr
  13. */
  14. void bubbleSort (vector<int>& arr) {
  15. int len = arr.size();
  16. for (int i=len-1;i>=0;i--) {
  17. for (int j=0;j<i;j++) {
  18. if (arr[j] > arr[j+1]) swap(arr[j], arr[j+1]);
  19. }
  20. }
  21. }
  22. int main() {
  23. vector<int> arr = {10, 9, 8, 7, 7, 6, 5, 11, 3};
  24. bubbleSort(arr);
  25. for (int &e: arr) cout << e << " ";
  26. }

选择排序

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. /**
  5. * 选择排序
  6. * 平均时间复杂度: O(n^2)
  7. * 最坏时间复杂度: O(n^2)
  8. * 最好时间复杂度: O(n^2)
  9. * 空间复杂度: O(1)
  10. * 稳定性: 不稳定
  11. * 排序方式: In-place
  12. * @param arr
  13. */
  14. void SelectionSort (vector<int>& arr) {
  15. int len = arr.size();
  16. for (int i=0;i<len;i++) {
  17. int mn = arr[i];
  18. int index = i;
  19. for (int j=i+1;j<len;j++) {
  20. if (arr[j] < mn) {
查看更多
? linux ?    发布于 2019-04-02   645人围观   0条评论

安装aria2

  1. sudo add-apt-repository ppa:t-tujikawa/ppa
  2. sudo apt-get update
  3. sudo apt-get install aria2

安装tampermonkey扩展

chrome插件地址 tampermonkey

安装 EX-百度云盘

安装 EX-百度云盘
油猴脚本地址 EX-百度云盘

title

可看到EX 下载字样,在该选项上选择复制压缩链接得到一个下载链接。

aria2c直接下载

aria2c 后面跟上下载链接即可

  1. aria2c "download.url"
查看更多
发布于 2019-03-31   560人围观   0条评论

添加源

  1. sudo add-apt-repository ppa:embrosyn/cinnamon
  2. sudo apt update

不填加源,安装的会是2.x版

安装

  1. sudo apt install cinnamon
查看更多