自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 Linux C获取本机MAC地址&IP地址

代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <net/if.h>#include <arpa/inet.h>#include <sys/types.h>#include <sys/ioctl.h>#include <sys/socket.h>#.

2021-07-19 17:55:41 1932

原创 解决力扣等国外网站打不开问题

1. 进入站长之家在线工具,找到DNS查询(http://tool.chinaz.com/dns/),输入待解决问题的域名,如图:

2021-06-19 16:45:28 7109 2

转载 操作系统篇(三)

转自:https://www.nowcoder.com/tutorial/93/675fd4af3ab34b2db0ae650855aa52d5

2021-06-14 18:51:15 550

转载 操作系统篇(二)

● 请你讲述一下互斥锁(mutex)机制,以及互斥锁和读写锁的区别参考回答:1、互斥锁和读写锁区别:互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒。读写锁:rwlock,分为读锁和写锁。处于读操作时,可以允许多个线程同时获得读操作。但是同一时刻只能有一个线程可以获得写锁。其它获取写锁失败的线程都会进入睡眠状态,直到写锁释放时被唤醒。注意:写锁会阻塞其它读写锁。当有一个线程获得写锁在写时,读锁也不能被其它线程获取;写.

2021-06-14 18:48:54 1357

转载 操作系统篇(一)

● 请你说一下进程与线程的概念,以及为什么要有进程线程,其中有什么区别,他们各自又是怎么同步的参考回答:基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等

2021-06-14 18:44:35 964

原创 linux shell中“2>&1“含义

在计划任务中经常可以看到。*/2 * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne >/dev/null 2>&1*/2 * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testTwo >/dev/null 2>&1对于& 1 更准确的说应该是文件描述符

2021-06-08 19:44:47 827

原创 Linux下 IPV6常用命令使用(ifconfig ping ssh)

给网卡添加IPV6地址(临时)ifconfig enpping IPV6地址ssh 使用IPV6地址远程连接

2021-06-01 10:44:21 1684

转载 IPV6组播地址

在IPv4中广泛的使用单播、广播、组播的方式。而在IPv6的应用环境中,使用单播,组播、任意播的新方式,放弃广播的使用,换而言之,在IPv6的环境中不再有广播的存在。关于IPv6的单播地址,在上面的12.1的几个小节中已经做出了详细的讨论,而本小节将详细讨论IPv6的组播与任意播的使用方式。理解IPv6的组播地址有一个重要的前提:就是读者能成功的理解IPv4中D类IP(组播地址)的作用、功能与构成。否则对IPv6的组播地址学习将是“空中阁楼”。所以拥有有IPv4组播地址的基础相当重要。学习提示:I.

2021-05-31 16:28:37 11437

翻译 IPV6详解

一、定义 IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。 IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。 目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。 目前IP协议的版本号是4(简称为IP...

2021-05-13 10:49:04 6933

转载 IPv4 和 IPv6 数据报格式详解

IPv4 报文头格式及各字段功能IPv4 报头格式各字段功能:1、版本号(Version):长度 4 bit 。标识目前采用的 IP 协议的版本号。一般的值为 0100(IPv4),0110(IPv6)版本号 版本 RFC 文档 0 保留 1~3 未分配 4 Internet 协议版本 4(IPv4) RFC791 5 ST 数据报(Datagram) RFC1190 6 简单 Internet..

2021-05-11 10:36:12 8453

转载 Linux下安装配置openldap

Ubuntu apt-get install安装参考:http://dongwang.wordpress.com/category/uncategorized/普通linux安装,以XXX用户身份安装:1、安装Berkeley DB 4.7.25:伯克利大学嵌入式数据库解决方案,openldap拿它作为存储方案。http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz下载到:/home/XXX/download/tar xvf db-4

2021-04-22 20:58:10 558

转载 用Makefile管理Java项目【转】

1.为什么用makefilemake是我最喜欢的Unix工具之一,通过makefile,它可以做许多自动化的事 情。我用make管理我的Linux配置文件,管理我的笔记,当然,也用它管理 我的编程项目。最近需要写java程序,由于我想在Emacs而不是Eclipse里做开发,就需要一 个管理项目的工具。由于不会ant ,自然而然就又想到了make。看过一个外 国人比较make和ant管理java项目的文章,说对于小的java项目,make更占 优势。所依我决定写一个比较通用的makefile,用m.

2021-04-20 15:56:21 147

原创 Linux Centos7 下配置Java环境变量

一、清除centos自带的jdk虽然Centos7下自带JDK1.7和1.8,运行java - version命令能显示出版本信息,但是jdk安装环境不全,缺少必要的jar包,即使配置好了环境变量,运行javac等命令时依旧不能用。所以我们需要先将自带的jdk删除后,将我们下载好的jdk解压,然后配置环境变量。1.使用如下命令查看本机自带jdk信息rpm -qa | grep java[root@localhost ~]$ rpm -qa |grep javatzdata-java-.

2021-04-17 10:14:31 1077

转载 TCP三次握手和四次挥手详解

TCP connection其中比较重要的字段有:(1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(3)标志位(Flags):共6个,即URG、ACK、PSH、RST、SYN、FIN等。具体含义如下:URG:紧急指针(urgent pointer.

2021-04-07 10:46:49 218

转载 RIP路由协议详解

一、RIP简介RIP是Routing Information Protocol(路由信息协议)的简称,它是一种较为简单的内部网关协议(Interior Gateway Protocol)RIP是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量来衡量到达目的网络的距离。设备到与他直连网络的设备跳数为0,然后每经过一个三层设备跳数增加1,也就是度量值等于从本网络到达目网络间的三层设备数量,但并不等于所经过的网段数RIP通过UDP报文进行路由信息的

2021-04-07 09:52:40 24428

原创 Linux 网卡配置文件详解

Linux 网卡配置文件解析配置文件位置:/etc/sysconfig/network-scripts/ifcfg-xxx1. TYPE=Ethernet # 网络类型 Ethernet 以太网2. PROXY_METHOD=none # 代理方式3. BROWSER_ONLY=no # 只是浏览器:否4. BOOTPROTO=none # 网卡协议 获取网卡IP的方式# dhcp: 动态主机配置协议# static: 手动配置固定IP# n

2021-03-26 11:39:57 9609

转载 超详细的遗传算法(Genetic Algorithm)解析【转】

00 目录遗传算法定义 生物学术语 问题导入 大体实现 具体细节 代码实现01 什么是遗传算法?1.1 遗传算法的科学定义遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,不需要确定的规则就能自动获取和指导优化的搜索空间,自适应地调整搜索

2021-03-03 15:55:53 13257 2

转载 Linux nmcli详解

linux使用nmcli重新生成网卡配置文件 一、常用命令查看网络信息查看网络接口信息 ifconfig查看IP地址 ip add二、nmcli命令查看设备状态 1 nmcli dev status 显示连接状态 1 nmcli con show 添加网络接口,生成配置文件nmcli connection add con-name <网络接口名称> type <接口类型> if.

2021-01-22 10:23:44 1552

转载 CUDA stream 与 CUDA event 详解

Stream一般来说,cuda c并行性表现在下面两个层面上:Kernel level Grid level到目前为止,我们讨论的一直是kernel level的,也就是一个kernel或者一个task由许多thread并行的执行在GPU上。Stream的概念是相对于后者来说的,Grid level是指多个kernel在一个device上同时执行。Stream和event简介Cuda stream是指一堆异步的cuda操作,他们按照host代码调用的顺序执行在device上。Stream

2021-01-19 11:11:43 4993 1

转载 Linux tcpdump命令详解

tcpdumptcpdump - dump traffic on a networktcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息命令格式tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [

2020-12-18 17:11:48 195 1

转载 深度解析输入网址后,请求信息的数据详细流转过程

从你输入一个网址,到网页显示,其间发生了什么?——详解中间发生的过程请求 URL当我们在浏览器里输入一个网址,比如https://www.baidu.com/URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。也可认为由4部分组成:协议、主机、端口、路径。URL的一般语法格式为:// 带方括号[]的为可选项protocol :// hostname[:port] / path / [;parameters][?query]#fragment生成 HTT...

2020-11-21 13:57:25 1991

转载 Linux errno详解

1. 错误码 / errnoLinux中系统调用的错误都存储于 errno中,errno由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误。PS: 只有当系统调用或者调用lib函数时出错,才会置位errno!查看系统中所有的errno所代表的含义,可以采用如下的代码:/* Function: obtain the errno string* char *strerror(int errno)*/#include <stdio.h>#inc

2020-11-11 15:33:59 11459

转载 Linux常用命令全拼

常用命令缩写pwd: print work directory 打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,类似于windows的任务管理器) 常用参数:-auxf ps -auxf 显示进程状态 df: disk free 其功能是显示磁盘可用空间数目信息及空间结点信息。换句话说,就是报告在任何安装的设备或目录中,还剩多少自由的空间。 du: Disk usage rpm:即RedHat Package Management,.

2020-11-11 14:28:49 223

转载 IP地址转换函数 inet_pton、inet_ntop与 inet_aton、inet_addr、 inet_ntoa

inet_ptonNAMEinet_pton - 将 IPv4 和 IPv6 地址从点分十进制转换为二进制SYNOPSIS #include <arpa/inet.h> int inet_pton(int af, const char *src, void *dst);DESCRIPTION该函数将字符串src转换为af地址类型协议簇的网络地址,并存储到dst中。对于af参数,必须为AF_INET或AF_INET6RETURN VALUEi...

2020-11-09 11:33:57 3025

转载 Epoll的本质(内部实现原理)

转自:https://zhuanlan.zhihu.com/p/63179839作者:罗培羽从事服务端开发,少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要,nginx、redis、skynet和大部分游戏服务器都使用到这一多路复用技术。因为epoll的重要性,不少游戏公司(如某某九九)在招聘服务端同学时,可能会问及epoll相关的问题。比如epoll和select的区别是什么?epoll高效率的原因是什么?如果只靠背诵,显然不能算上深刻的理解。网上虽.

2020-11-06 17:35:24 1638 2

转载 Linux epoll模型原理及源码解析

一、epoll简介epoll是当前在Linux下开发大规模并发网络程序的热门选择,epoll在Linux2.6内核中正式引入,和select相似,都是IO多路复用(IO multiplexing)技术。按照man手册的说法,epoll是为处理大批量句柄而做了改进的poll。Linux下有以下几个经典的服务器模型:1、PPC模型和TPC模型PPC(Process Per Connection)模型和TPC(Thread Per Connection)模型的设计思想类似,就是给每一个到来的连

2020-11-06 16:53:12 252

转载 C语言-回调函数详解

1. 什么是回调函数?回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义。我在百度上搜了一下,发现众说纷纭,有很大一部分都是使用类似这么一个场景来说明:A君去B君店里买东西,恰好缺货,A君留下号码给B君,有货时通知A君。感觉这个让人更容易想到的是异步操作,而不是回调。另外还有两句英文让我印象深刻:1) If you call me, I will call you back; 2) Don't call me, I will call

2020-11-06 16:35:44 214

转载 漫画趣解Linux内核

今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。 TurnOff.us 是一个极客漫画网站,作者Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。 在开始之前,我们先来看看这幅漫画的全貌!标题这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表Linux 内核。地基一个房子最重要的就是地基,所以我们先从地基讲起。地基(底层).

2020-11-05 20:33:53 303

转载 IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)

1、htonl ()和ntohl( )u_long PASCAL FAR ntohl (u_long netlong);u_short PASCAL FAR ntohs (u_short netshort);ntohl( )-----网络顺序转换成主机顺序u_long PASCAL FAR htonl (u_long hostlong);u_short PASCAL FAR htons (u_short hostshort);htonl ()-----主机顺序转换成网络顺序2、i

2020-11-04 20:34:40 2367

转载 socket编程 sockaddr_in 和sockaddr和in_addr详解【转】

sockaddrsockaddr 是通用的socket地址,具体到Internet socket,用下面的结构,二者可以进行类型转换sa_family是地址家族,一般都是“AF_xxx”的形式。通常大多用的是都是AF_INET,代表TCP/IP协议族sa_data是14字节协议地址。此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构struct host

2020-11-04 20:20:28 4362

转载 epoll使用详解

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译内...

2020-11-04 19:34:00 3429

转载 编程变量命名规则及编程单词缩写字典

作为一个程序猿,在编程过程中不可避免的要对变量命名,这个时候就需要掌握几种常见的命名规则,及常用单词的缩写,故从网上整理了一篇资料,以飨读者!(✿◡‿◡) O(∩_∩)O哈!命名规则:目前,业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法。 (1)驼峰命令法。正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数: printEmployeePaychecks(); pr

2020-11-03 20:34:07 4440 1

原创 gcc编译:/usr/lib/gcc/x86_64-linux-gnu/5/x86_64-linux-gnu/crt1.o:在函数‘_start’中:(.text+0x20):对‘main’未定义引用

gcc编译器编译时报错:/usr/lib/gcc/x86_64-linux-gnu/5/…/…/…/x86_64-linux-gnu/crt1.o:在函数‘_start’中:(.text+0x20):对‘main’未定义的引用出现这种问题可能是 你对没有main函数的静态库或动态库尝试编译成可执行文件。我在写makefile的时候对依赖库文件漏写了-c参数,导致其尝试编译链接为可执行文件,又因为没有main函数实现,所以报出了这样的错误。gcc -c参数表示将源文件编译成目标文件,即.o结.

2020-10-28 10:15:08 16381 4

转载 IP协议头部数据包格式

IP协议头部结构Version(版本号):IP 协议版本号。目前只有两个版本:IPv4 和 IPv6Header Length(IP 协议头部长度):IP 协议头部的长度,单位字节(32 bit)需要这个值是因为任选字段的长度是可变的, 这个字段占4bit(最多能表示15个32bit的的字,即4*15=60个字节的首部长度),因此IP 头部最多有60字节长度。正常的长度是20字节; 如果有额外的 IP 的 options 选项,还得加上 option 的长度。Type of Se..

2020-10-19 10:00:10 1181

转载 DPDK--报文收发流程

原文链接:https://blog.csdn.net/ApeLife/article/details/102469243?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2

2020-10-17 16:28:23 1951 1

转载 DPDK--网卡初始化

原文链接:https://blog.csdn.net/hz5034/article/details/88367518作者:hz5034网卡初始化过程图片来源于http://blog.chinaunix.net/uid-28541347-id-5785122.html函数 功能 rte_eth_dev_count() 网卡数 rte_eth_dev_configure() 配置网卡 rte_eth_rx_queue_setup() rte_e..

2020-10-17 16:22:47 1994

转载 mbuf(存储器缓存)详解【转】

原文:https://blog.csdn.net/yexiangCSDN/article/details/88355509作者:HarkerYX一、mbuf 介绍在BSD TCP/IP协议栈代码设计中的一个基本概念就是存储器缓存,称作一个mbuf,全称为"memory buffer",用于存储各种信息。mbuf的主要用途是保存在进程和网络接口间互相传递的用户数据。但mbuf也用于保存其他各种数据:源与目标地址、插口选项等等。mbuf相当于Linux内核中的skb。mbuf的相关定义在文件/

2020-10-17 15:19:37 3996

转载 Linux网络 - 数据包的接收过程【转】

原文:https://segmentfault.com/a/1190000008836467作者:public0821本文将介绍在Linux系统中,数据包是如何一步一步从网卡传到进程手中的。如果英文没有问题,强烈建议阅读后面参考里的两篇文章,里面介绍的更详细。本文只讨论以太网的物理网卡,不涉及虚拟设备,并且以一个UDP包的接收过程作为示例.本示例里列出的函数调用关系来自于kernel 3.13.0,如果你的内核不是这个版本,函数名称和相关路径可能不一样,但背后的原理应该是一样的(或.

2020-10-17 10:22:29 318

转载 在虚拟机 VMware 中安装部署 intel dpdk【转】

来源:https://blog.csdn.net/linzhaolover/article/details/17642259作者:朝阳_tony此文请结合intel dpdk源码去阅读,基于dpdk-1.5.1 版本源码讲解,源码可以去http://dpdk.org/dev网页中下载;更多官方文档请访问http://dpdk.org/假如你没有intel的网卡,没有相应的linux系统,只是想简单的使用了解一下dpdk,那么你可以选择在vmware中部署一套简单的dpdk环境;...

2020-10-10 20:22:35 897

转载 linux下C/C++ include 和 链接库 文件搜素路径【转】

来源:https://www.cnblogs.com/bigfi/p/9487427.html作者:bigfi C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。自己指定的路径就不说了,这里说明一下系统自动搜索的路径。【1】include头文件路径 除了默认的/usr/include, /usr/local/include等include路径外,还可以通过设置环境变量来添加系统include...

2020-10-10 20:08:54 886

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除