随笔分类 - Linux[开发]
摘要:如果是windows下,不用考虑了,直接visual studio,免费,功能强大。 linux下有很多ide,但是都不太好用,这里就个人使用,并且针对特定工程做一下介绍。 每种ide,如果用习惯了,肯定都可以胜任工作,这是个人习惯问题,本人就以个人上手以及某几个测试用例来说一下体验。 测试场景就是
阅读全文
摘要:centos报这个错误是因为没有安装内核开发包,运行如下命令安装 yum install kernel-devel 如果还有报错,把名字指定一下 cd /lib/modules/3.10.0-1127.el7.x86_64/ rm -f build ln -s /usr/src/kernels/3.
阅读全文
摘要:centos 7升级gcc的时候,编译报错,是因为没有安装g++。centos安装g++命令如下 yum install gcc-c++
阅读全文
摘要:如果python原来是tab分割,这时增加一句是空格分割的代码,那么程序会有问题,运行不起来,报错日志也没有。也就是: 文本错误,python不会报错,也运行不起来 tab和空格混淆,python无法运行,相当于文本错误的一种
阅读全文
摘要:https://man7.org/linux/man-pages/man2/epoll_ctl.2.html 除了上面已知的陷阱epoll的陷阱实践,在开发中初学者还会遇到一些问题,下面就一一列出: epoll_ctl传入参数 #include <sys/epoll.h> int epoll_ctl
阅读全文
摘要:https://man7.org/linux/man-pages/man7/signal.7.html # 名称 信号 - 信号的概述 # 描述 Linux支持POSIX的可靠信号(下文的标准信号)和POSIX的实时信号。 ## 信号描述 每一个信号都有当前的处置,用来决定当前的进程在接收到这个信号
阅读全文
摘要:在使用epoll的时候,我们上篇文章epoll的陷阱大体介绍了epoll中会有哪些问题。这篇文章我们就针对必须要了解,也是绕不过去的陷阱进行实验,看看现象是什么,并且如何编写才能达到我们想要的效果。 https://stackoverflow.com/questions/41582560/how-d
阅读全文
摘要:https://cmake.org/cmake/help/v3.18/manual/cmake.1.html # 概要 ```bash Generate a Project Buildsystem cmake [\] \ cmake [\] \ cmake [\] -S \ -B \ Build a
阅读全文
摘要:https://cmake.org/cmake/help/v3.18/ 我们写好的工程,需要编译,那么就要告诉编译器,怎么编译源码,如何组装,需要加载哪些类库,哪些头文件。 在windows下,我们使用visual studio,很多细节都被隐藏了,实际上最终核心的功能与linux类似,编译一个工程
阅读全文
摘要:https://man7.org/linux/man-pages/man1/strace.1.html # 名称解析: strace - trace system calls and signals[跟踪系统调用和信号] # 概要 ```bash strace [-ACdffhikqqrtttTvV
阅读全文
摘要:在linux下开发的时候,需要对服务端监听的socket在bind之前设置SO_REUSEADDR。 int optval = 0; setsockopt(listensockfd, SOL_SOCKET, SO_REUSEADDR, (const void*)&optval, sizeof(opt
阅读全文
摘要:http://blog.sina.com.cn/s/blog_e59371cc0102v29b.html https://man7.org/linux/man-pages/man7/futex.7.html https://man7.org/linux/man-pages/man2/futex.2.
阅读全文
摘要:Starvation 特别提出在ET模式下,因为需要一次性把数据读完,如果一次性通知的数据过大,有可能处理时间过长,导致同一线程其他的事件长时间等待。这个不仅仅是ET模式下,也不仅仅是epoll模型下才有的问题。对于网络接收模块,尽可能不要做额外工作,应该把数据接收出来,然后放到另一个分发线程,由分
阅读全文
摘要:前言 提到网络高并发,windows下避不开的是iocp,linux下是epoll,freebsd下是kqueue。iocp与epoll的区别是,windows一如既往的把所有的东西都做好,iocp通知的时候,数据已经放到了我们提供的buffer中;而linux则是一如既往的给你最大自由,epoll
阅读全文
摘要:在server端使用bind绑定端口的时候,如果传入sockfd是一个不存在的,就会报错,如果是小于当前sockfd的值,就是88,如果是大于当前sockfd的值,就是9。 比如当前创建了一个socket,返回得到的sockfd是3,并且只有这一个socket。如果bind传入的是0 1 2,err
阅读全文
摘要:1. 生成静态库,linux下库的规则是lib开头 g++ -c code.cpp ar cr libcode.a code.o
阅读全文
摘要:1. makefile格式如下,想要生成code.o,就要指定它依赖哪些东西。比如这里是依赖code.cpp这个文件 然后如何生成,换行+tab(与python类似,通过tab区分下面的是生成的命令) code.o : code.cpp gcc -c code.cpp
阅读全文