随笔分类 -  Linux

摘要:从网卡接收数据说起 下边是一个典型的计算机结构图,计算机由 CPU、存储器(内存)与网络接口等部件组成,了解 Epoll 本质的第一步,要从硬件的角度看计算机怎样接收网络数据。 计算机结构图(图片来源:Linux 内核完全注释之微型计算机组成结构) 下图展示了网卡接收数据的过程: 在 1 阶段,网卡 阅读全文
posted @ 2020-12-07 10:51 xiuzhublog 阅读(647) 评论(0) 推荐(0)
摘要:内存是程序得以运行的重要物质基础。如何在有限的内存空间运行较大的应用程序,曾是困扰人们的一个难题。为解决这个问题,人们设计了许多的方案,其中最成功的当属虚拟内存技术。Linux作为一个以通用为目的的现代大型操作系统,当然也毫不例外的采用了优点甚多的虚拟内存技术。 虚拟内存 为了运行比实际物理内存容量 阅读全文
posted @ 2020-12-02 15:40 xiuzhublog 阅读(496) 评论(0) 推荐(0)
摘要:在编译大型项目的时候使用makefile,所需要的时间也比较长。尤其是在做测试的时候,需要使用很多次make指令,这需要耗费大量的时间。 使用make -j命令可以缩短这部分时间。 使用方法就是在-j后面加一个数字,比如 -j10,意为在编译文件的时候用10个线程进行编译. 阅读全文
posted @ 2020-10-13 10:50 xiuzhublog 阅读(4154) 评论(0) 推荐(0)
摘要:在Linux上,执行有多线程的程序时,当程序执行退出操作时有时会遇到卡死现象,如果程序模块多,代码量大,很难快速定位,此时可试试gdb attach方法。 测试代码main.cpp如下,这里为了使程序退出时产生卡死现象,在第51行时push线程sleep 100分钟: #include <stdio 阅读全文
posted @ 2020-10-09 09:17 xiuzhublog 阅读(3651) 评论(0) 推荐(0)
摘要:在Linux系统中,ps(Process Status的缩写)命令常常用来用来列出系统中当前运行的进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前 阅读全文
posted @ 2020-10-09 08:51 xiuzhublog 阅读(212) 评论(0) 推荐(0)
摘要:我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置。 whereis 查看文件的位置。 locate 配合数据库查看文件位置。 find 实际搜寻硬盘查询文件名称。 1、which命令 which命令的作用是,在PATH变量指定的 阅读全文
posted @ 2020-10-01 18:39 xiuzhublog 阅读(614) 评论(0) 推荐(0)
摘要:1. rm -rf 命令 rm -rf命令是删除文件夹及其内容最快的方式之一。 仅仅一丁点的敲错或无知都可能导致不可恢复的系统崩坏。 下列是一些rm 命令的选项: 1.rm命令在Linux下通常用来删除文件。 2.rm -r 命令递归的删除文件夹,甚至是空的文件夹。 3.rm -f 命令能不经过询问 阅读全文
posted @ 2020-10-01 18:26 xiuzhublog 阅读(308) 评论(0) 推荐(0)
摘要:调试解决程序的漏洞,是程序员最基本的技能之一。用惯了图形化IDE,在目前使用gtest框架进行单元测试,需要通过xshell远程连接Linux虚拟机进行C++代码的调试时,觉得很不适应。经过几天查资料,和实践,找到了几种简单方便的调试方法。 1.gdb GDB 是GNU开源组织发布的一个强大的UNI 阅读全文
posted @ 2020-09-24 16:44 xiuzhublog 阅读(1135) 评论(0) 推荐(1)
摘要:在使用makefile进行编程的时候,虽然在makefile里使用了clean命令用于清除生成的.o文件,但是在进行多次编译调试运行的时候,单纯的使用make命令进行编译可能会残留上一次的错误。 实际使用的时候必须执行以下makeclean命令,否则会出现无法定位错误出现位置的问题,很长时间都找不到 阅读全文
posted @ 2020-09-23 09:13 xiuzhublog 阅读(1058) 评论(0) 推荐(0)
摘要:符号重定位 讲动态链接之前,得先说说符号重定位。 c/c++ 程序的编译是以文件为单位进行的,因此每个 c/cpp 文件也叫作一个编译单元(translation unit), 源文件先是被编译成一个个目标文件, 再由链接器把这些目标文件组合成一个可执行文件或库,链接的过程,其核心工作是解决模块间各 阅读全文
posted @ 2020-08-21 15:46 xiuzhublog 阅读(1960) 评论(0) 推荐(2)
摘要:通过网络查找资料得到的都是一些零碎不成体系的知识点,无法融会贯通。而且需要筛选有用的信息,这需要花费大量的时间。所以把写代码过程中用到的相关知识的博客链接附在用到的位置,方便回顾。 1.程序流程 服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户 阅读全文
posted @ 2020-08-20 09:33 xiuzhublog 阅读(3249) 评论(1) 推荐(3)
摘要:原理 基本概念 什么是TCP/IP、UDP? 详细的可以看一下这个:学习计算机网络知识只要一篇就够了! TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。TC 阅读全文
posted @ 2020-08-13 11:16 xiuzhublog 阅读(881) 评论(0) 推荐(0)
摘要:转载于:https://blog.csdn.net/luansj/article/details/97272672?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase& 阅读全文
posted @ 2020-05-28 22:03 xiuzhublog 阅读(194) 评论(0) 推荐(0)