centos网络配置-程序员宅基地

技术标签: 网络  

第一章  如何将你的Centos虚拟机连上Internet

一般来说,我们学习Centos都在VMware Workstation下进行,用这种方法安装Centos很容易在一台机器上建立你自己的网络,这样方便你的学习。如何在VMware Workstation下安装你的Centos在此就不复述了,你可以很容易找到安装方法,下面的内容都安排在上述环境下进行。将你的Centos虚拟机连上Internet有两种方式:

  1. 一种是动态网络方式(dhcp),包括网桥方式和NAT方式,这种方式你可以将你的虚拟机,宿主机一起看成连在同一台交换机上,你可以将虚拟机软件中的VMnet0看成是一台交换机,这时,它们的IP当然必须是在同一个网段,并且拥有相同的网关。
  2. 一种是静态网络方式(static)nat方式,包括网桥方式和NAT方式,此时,你可以将虚拟机软件中的VMnet8看成是一台路由器,很多资料将这个讲的云里雾里,其实我们没有必要去了解太多,大体能理解就可以了。学网络的人都知道,这台路由器VMnet8必须有与宿主机是同一网段的IP口才能连上Internet的,但这不是我们需要关心,虚拟机软件早就想好了。

对于网卡来说,我们要做的工作就是使用DHCP还是static方式配置IP地址。另一个就是配置DNS服务器的IP地址。

第一节DHCP方式

1.网桥模式联网

   首先按下面的方式配置虚拟网络编辑器:

第一步:通过VMware编辑菜单栏点击虚拟网络编辑器,如下图所示。

 第二步:设置VMnet0,选择桥接模式,外部连接不要选自动,而是选择你的宿主主机的网卡,考虑到一般有有线和无线两块网卡,但这里选择的这块网卡是连接Internet的,比如,这个图中所示,我使用无线网卡连接到Internet,所以选择它,然后“确定”。

 第三步:打开如下图所示界面,选择“设置”进入第四步。

第四步:选择网络适配器,在网络连接那里选择桥接模式,然后“确定”

 第五步:进入你的centos/Linux, 打开终端,如果你是第一次配置网卡,按下面操作

root@localhost network-scripts]# systemctl restart network

重启网络服务

[root@localhost network-scripts]# ifconfig

查看一下你的网卡是不是有IP地址

 第六步:检查一下是否与网关相通,我连Internet的网关是192.168.0.1。

[root@localhost network-scripts]# ping 192.168.0.1

连通!

或者检查一下宿主机与虚拟机是否相通,

至此,网络已经连通!

如果你的系统原来连过网,那么你得查看一下你的配置文件,这个配置文件是/etc/sysconfig/network-scripts/ifcfg-ens33,按下面修改:

[root@localhost network-scripts]# cat ifcfg-ens33

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="dhcp"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

UUID="814a3731-7507-497a-ad97-51508e114fae"

DEVICE="ens33"

ONBOOT="yes"

修改后再按如下操作

root@localhost network-scripts]# systemctl restart network

重启网络服务

[root@localhost network-scripts]# ifconfig

查看一下你的网卡是不是有IP地址

再执行上面的第六步检查连通性即可!

2NAT模式联网

第一步:打开虚拟网络编辑器,所有数据不要去改动,如下图所示:

第二步:打开虚拟机设置,按图中标箭头的地方设置好,然后“确定”。

 第三步:重启网络服务

root@localhost network-scripts]# systemctl restart network

重启网络服务

[root@localhost network-scripts]# ifconfig

查看一下你的网卡是不是有IP地址

 

第四步:检查连通性

 

 

 

至此网络的联通性就配好了!

第二节Static方式

1.网桥模式联网(Static)

   首先按下面的方式配置虚拟网络编辑器:

第一步:通过VMware编辑菜单栏点击虚拟网络编辑器,如下图所示。

 

第二步:设置VMnet0,选择桥接模式,外部连接不要选自动,而是选择你的宿主主机的网卡,考虑到一般有有线和无线两块网卡,但这里选择的这块网卡是连接Internet的,比如,这个图中所示,我使用无线网卡连接到Internet,所以选择它,然后“确定”。

 

第三步:打开如下图所示界面,选择“设置”进入第四步。

 

第四步:选择网络适配器,在网络连接那里选择桥接模式,然后“确定”

 

第五步:修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,如果没有这个文件,先检查一下你的网卡名,然后在这个目录下查找到相应的配置文件。如果都没有,用命令查看一下你的网卡名称,然后自己编辑一个这样的文件即可,比如你的网卡名称是ens37,那么在/etc/sysconfig/network-scripts/下编辑一个ifcfg-ens37文件即可。

 

第六步:重启网络服务,按下图操作

 

第七步:检查连通性

 

 

至此,网络已经联通!

如果你需要自己编辑文件/etc/sysconfig/network-scripts,那么,这个文件里有一个非常重要的数据UUID,这是网卡的令牌(token),你可以通过以下方式获得:

 

 

2.NAT模式联网(Static)

第一步:通过VMware编辑菜单栏点击虚拟网络编辑器,如下图所示。

 

第二步:选中VMnet8点击NAT设置

 

第三步:不使用本地DHCP服务,这样就得勾消DHCP选项,然后查看DHCP确保未启用。

 

第四步:打开NAT设置,记下图中表示的数据用于修改配置文件,你不要去改动这些数据。

 

第五步:打开虚拟机设置,按图中标箭头的地方设置好,然后“确定”。

 

第六步:修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,如果没有这个文件,先检查一下你的网卡名,然后在这个目录下查找到相应的配置文件。如果都没有,用命令查看一下你的网卡名称,然后自己编辑一个这样的文件即可,比如你的网卡名称是ens37,那么在/etc/sysconfig/network-scripts/下编辑一个ifcfg-ens37文件即可。

     注意:修改的时候必须按第四步的IP网段和网关修改,具体根据你自己的情况决定这个网段,比如,我的网段是192.168.75.0,网关是192.168.75.2,子网掩码是255.255.255.0。

 

第七步,重启网络服务

[root@localhost network-scripts]# systemctl restart network

[root@localhost network-scripts]# ifconfig

第八步:检查网络的联通性。至此配置完毕!

 

 

注意:很多人在修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33时,喜欢将原来的配置文件进行备份,这习惯很好,但有时会出现点麻烦!比如:

[root@localhost network-scripts]# cp -p  ifcfg-ens33 ifcfg-ens33.bakk

出现了两个ifcfg-ens33,尽管后面那个                

 

                                              是ifcfg-ens33.bakk,重启网络服务时会出现下面的错误,不能启动网络服务!

 

这时,你将文件ifcfg-ens33.bakk改一下名就可以了!比如我是这样改的:

[root@localhost network-scripts]# mv ifcfg-ens33.bakk myifcfg-ens33.bakk

反正不是ifcfg-ens33开始就行!

第三节 配置DSN

前两节我们分别介绍了DHCP(bridge,nat)方式和Static(bridge,nat)的网络连接方法,但是,如果希望上Internet的话,我们还必须配置好DNS。本节我们将介绍配置DNS的方法。

第一步:修改配置文件 /etc/resolv.conf ,如果你公司有自己的DNS服务器,那么用本公司的,也可以到网上查找免费的DNS服务器,比如:

中国互联网络中心:1.2.4.8、210.2.4.8、101.226.4.6(电信及移动)、123.125.81.6(联通)

阿里DNS:223.5.5.5、223.6.6.6

googleDNS:8.8.8.8、8.8.4.4

openDNS:208.67.222.222208.67.220.220208.67.222.220208.67.220.222

可以阻挡含有恶意网站的dns

208.67.220.123

无劫持 去广告或粗俗网站dns:114.114.114.114 和 114.114.115.115

拦截钓鱼病毒木马网站,可增强网银、证券、购物、游戏、隐私信息安全的DNS 114.114.114.119 和 114.114.115.119

然后修改配置文件 /etc/resolv.conf,如下表所示:

 

可最多写3个。

注意:dns跟网络服务是无关的,所以你不需要重启网络服务。但是跟网络管理器(NetworkManager)这个服务有关!

  当你配好resolv.conf文件后,过了一会,发现刚才配置好的DNS又失效了,原来DNS被系统重新覆盖或者被清除!所以你还必须完成以下工作。

第二步:修改/etc/NetworkManager/NetworkManager.conf文件

 

[root@localhost ~]# systemctl restart NetworkManager       ß重启网络管理器

第三步:检查配置是否成功,随便找一个网站ping一下就可,我这样ping www.baidu.com.

 

大功告成!现在可以从你的虚拟机上Internet了。

第四节 网络基本管理--与网络配置相关的常用命令

  1. 命令ip addr

熟悉Linux操作系统的人一般知道ip addr命令是用来查看本地IP地址的,除了这一点,也可了解一下其它的信息。利用这个命令,你就可以看到你的Linux系统的的网络设备列表。

[root@localhost ~]# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

#

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:ae:ed:83 brd ff:ff:ff:ff:ff:ff

    inet 192.168.75.100/24 brd 192.168.75.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::80af:49f3:b3dc:a8c9/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000

    link/ether 52:54:00:04:ad:bd brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

       valid_lft forever preferred_lft forever

4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000

    link/ether 52:54:00:04:ad:bd brd ff:ff:ff:ff:ff:ff

网络设备也就是网卡,centos7引入了一种新的网络设备命名方式:一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING)。

    通常我们使用的服务器往往会有多块网卡,在同一服务器上有主板集成的、PCIe插槽上的等不同的网络接口卡。原来的Linux系统采用eth0,eth1这种命名方式,不能反映不同网络接口卡的物理特征。为此,dell开发了biosdevname方案,而systemd v197版本进一步将dell方案作了拓展,可以为本地的Ethernet、WLAN、WWAN接口自动分配可预测的、稳定的网络接口名称,而抛弃了传统的命名方式如eth0,eth1,wlan0等。

目前的Centos同时支持dell的biosdevname和systemd两种命名方式。具体内容我们在此不详细介绍了,感兴趣的读者可以上网去查询有关资料。

我们知道ens33是我们用于连网的网卡,其功能大多已经了解;下面我们着重介绍一下lo和virbr0的功能。

一、关于lo

     在Linux系统中,lo(lo: local loopback的简写)是一个虚拟网络接口。所谓虚拟网络接口,是指不从外界接收和发送数据包,只在系统内部接收和发送数据包,不需要驱动程序。lo接口的作用是为本地不同进程间进行数据交换提供服务。直观地说lo就是回环地址127.0.0.1,用于本机通信,数据经过内核处理后直接返回,不会在任何网络中出现。

   lo接口相关的IP地址就是本地回环地址,这个IP地址指的是以127开头的(127.0.0.1 – 127.255.255.254)地址范围,但通常用使用127.0.0.1,所以127.0.0.1也被称为本地回环地址(Loop back address)。 

     本地回环地址代表设备的本地虚拟接口,即使你的机器没有安装网卡,也可以ping通这个本地回环地址。利用命令ping 127.0.0.1可以检查本地TCP/IP协议以及基本数据接口等是否工作正常。顺便说一下,如果你想检查网卡是否工作正常的话,就得ping一下你本机的IP地址。

可以在Linux服务器中用tcpdump -i lo命令观察抓取本机间不同进程交换数据包的情况,如下图所示。

 

也可以用Wireshark软件按如下设置网卡进行抓包实验,Wireshark不是Linux自带的,不过也没问题,可以按下面方式安装。

yum –y install wireshark

yum –y install wireshark-gnome

wireshark的图形界面

然后在终端输入 wireshark命令启动

 

     这个软件的用法在此不介绍了,读者可以自行去学习了解。

 二 、关于virbr0

大多数学习Linux的读者为了方便,一般采用虚拟机下安装Linux,这样就会看到virbr0这个网络设备,下面是在VMware Workstation下安装的Centos系统有关virbr0的信息,其中的IP地址、子网掩码等是虚拟机控制程序分配的,IP地址192.168.122.1 是固定的,你可以看看你自己的是不是也一样是这个地址。

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

        ether 52:54:00:04:ad:bd  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0其实就是一个虚拟网桥(virtual bridge),你也可以理解为在虚拟网络中的交换机,当你在VMware Workstation下安装了多个虚拟机时,这些虚拟机之间就是通过这个交换机virbr0互联的,没有virbr0,各虚拟机之间无法通信。尽管你的虚拟机与virbr0的IP地址192.168.122.1不属于同一网段,但ping 192.168.122.1是通的,你不妨试试ping一下。

2.Ifconfig命令

    ifconfig命令是centos6中比较重要的命令,可以用于查看、配置、启用或禁用指定网络接口,如配置网卡的IP地址、掩码、广播地址、网关等,功能不可谓不丰富,但在centos7中也能用,不过我个人还是比较喜欢用这个程序。

    如果你在安装Centos7时可能没有安装这个程序,可以自己用命令yum install net-tools.x86_64安装ifconfig即可

一、ifconfig的语法

语 法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>] [media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>] [-pointopoint<地址>]

二、ifconfig的参数解释

 参数名称

含义

网络设备

网络设备的名称

down

关闭网络设备

up

启动网络设备

-arp

打开或关闭接口上使用的ARP协议

-allmuti

关闭或启动接口的无区别模式

-promisc

关闭或启动网络设备的混杂模式

add<地址>

设置网络设备IPv6IP地址

del<地址>

删除网络设备IPv6IP地址

media<网络媒介类型>

设置网络设备的媒介类型

mem_start<内存地址>

设置网络设备在主存所占用的起始地址

metric<数目>

设定在计算数据包的转送次数时,所要加上的数目

mtu<字节>

设置网络设备的MTU

netmask<子网掩码>

设置网络设备的子网掩码

tunnel<地址>

建立IPv4IPv6之间的隧道通信地址。

-broadcast<地址>

将要送往指定地址的数据包当成广播数据包来处理

-pointopoint<地址>

与指定地址的网络设备建立直接连线,此模式具有保密功能

注:参数前面加上一个负号用于关闭该选项!

混杂模式(promiscuous mode)下的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。

实例:查看主机所有网络接口的情况

Ifconfig –a  / 包括开启和没有开启的网络接口

Ifconfig     /查看开启的网络接口

[root@localhost ~]# ifconfig ens33    //查看网卡ens33的信息

1ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

2       inet 192.168.75.100  netmask 255.255.255.0  broadcast 192.168.75.255

3       inet6 fe80::80af:49f3:b3dc:a8c9  prefixlen 64  scopeid 0x20<link>

4       ether 00:0c:29:ae:ed:83  txqueuelen 1000  (Ethernet)

5       RX packets 13625  bytes 4557052 (4.3 MiB)

6       RX errors 0  dropped 0  overruns 0  frame 0

7       TX packets 1547  bytes 152652 (149.0 KiB)

8       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

为了便于理解,下面的表格内容为上面表格内容的解释,按行序对应

1UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节

HWaddr             表示网卡的MAC 地址(Hardware Address 

inet addr           表示该网卡在 TCP/IP 网络中的IP 地址 

Bcast                 表示广播地址(Broad Address 

Mask                  表示子网掩码(Subnet Mask 

MTU                   表示最大传送单元,不同局域网类型的 MTU值不一定相同,对以太网来说,MTU 的默认设置是 1500 个字节 

Metric               表示度量值,通常用于计算路由成本 

RX                     表示接收的数据包 

TX                      表示发送的数据包 

collisions           表示数据包冲突的次数 

txqueuelen        表示传送列队(Transfer Queue)长度 

interrupt            表示该网卡的IRQ 中断号 

Base address      表示I/O 地址

3.网卡的控制命令:ifdown ifup

   ifup 网卡名:打开网卡,例如:ifup ens33

   ifdown网卡名:关闭网卡,例如:ifdown ens33

注意ifdown命令不能再xshell远程终端中单独用,不然会中断你的连接,如果是跑着业务的服务器就只能让人到机房去启动网卡了。

[root@localhost ~]#ifdown ens33

断开设备 'ens33'

[root@localhost ~]#ifconfig ens33

ip地址信息没了

[root@localhost ~]# ifup ens33

开启ens33

[root@localhost ~]#ifconfig ens33

看看有没有ip地址信息

4nmcli 命令

     nmcliredhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效

  1. 检查网络状态,绿色表示已启用(conected),红色表示已停用(disconected),浅蓝色表示网线没插(unavailable

[root@localhost ~]# nmcli

ens33: 连接的 to ens33

        "Intel 82545EM"

virbr0: 连接的 to virbr0

        "virbr0"

lo: 未托管

        "lo"

        loopback (unknown), 00:00:00:00:00:00, sw, m

virbr0-nic: 未托管

        "virbr0-nic"

下面将常用的nmcli命令的用法写在下面表中:

nmcli connection show

查看所有网络连接

nmcli con show -active

查看激活状态的网络连接

nmcli con show ens33

查看指定网卡ens33的详细信息

nmcli device show

显示所有设备网络设备详情信息

nmcli device show ens33

显示指定网络设备ens33的详细信息

nmcli device status

显示设备的连接状态

nmcli connection up ens33

启用网卡ens33

nmcli connection down ens33

停用网卡ens33网络连接-可以被自动激活

nmcli connection modify ens33 connection.autoconnect yes

设置自动启动网卡, 实际上就是修改网卡配置文件ifcfg-ens33ONBOOT=yes

nmcli connection modify ens33 ipv4.addresses 192.168.75.147/24

实际上就是修改网卡配置文件ifcfg-ens33

IPADDR=192.168.75.147

PREFIX=24(NETMASK=255.255.255.0)

nmcli connection modify ens33 ipv4.gateway 192.168.75.2

修改网关: 实际上就是修改网卡配置文件ifcfg-ens33

GATEWAY=192.168.75.2

nmcli connection modify ens33 ipv4.dns 114.114.114.114

添加DNS: 实际上就是修改网卡配置文件ifcfg-ens33

DNS1=114.114.114.114

nmcli connection modify ens33 +ipv4.dns 1.2.4.8

添加第二个DNS

nmcli connection modify ens33 -ipv4.dns 1.2.4.8

删除第二个DNS

5、检查网卡是否连接网线的命令

mii-tool ens33     #检查网卡ens33是否插上网线

ethtool ens33      #检查网卡ens33是否插上网线的详细信息

[root@localhost ~]# mii-tool ens33

ens33: link ok

[root@localhost ~]# ethtool ens33

Settings for ens33:

           Supported ports: [ TP ]

           Supported link modes:   10baseT/Half 10baseT/Full

                                   100baseT/Half 100baseT/Full

                                   1000baseT/Full

           Supported pause frame use: No

           Supports auto-negotiation: Yes

           Supported FEC modes: Not reported

           Advertised link modes:  10baseT/Half 10baseT/Full

                                   100baseT/Half 100baseT/Full

                                   1000baseT/Full

           Advertised pause frame use: No

           Advertised auto-negotiation: Yes

           Advertised FEC modes: Not reported

           Speed: 1000Mb/s

           Duplex: Full

           Port: Twisted Pair

           PHYAD: 0

           Transceiver: internal

           Auto-negotiation: on

           MDI-X: off (auto)

           Supports Wake-on: d

           Wake-on: d

           Current message level: 0x00000007 (7)

                                       drv probe link

           Link detected: yes

小结

本章我们介绍了虚拟机的网络连接的四种方法,最好介绍了常用的网络管理命令。

作业:1.请使用nmcli命令配置dns服务器。

      2.使用nmcli命令修改IP地址、网关。

   

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_59323083/article/details/125531699

智能推荐

java随机数_[转]JAVA获取随机数-程序员宅基地

文章浏览阅读93次。在Java中我们可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和 Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。随机数发生器(Random)对象产生以后,通过调用不同的met..._java 取float型随机数

linux专用的opencv下载链接(持续更新)_opencv官网下载linux版本-程序员宅基地

文章浏览阅读5.3k次,点赞6次,收藏15次。目前拥有的压缩包如下:opencvopencv-contribopencv-4.1.1.tar.gzopencv_contrib-4.0.1.tar.gzopencv_contrib-4.0.0-rc.tar.gzopencv_contrib-4.0.0-beta.tar.gzopencv_contrib-4.0.0-alpha.tar.gz..._opencv官网下载linux版本

SQL 手工注入_sql注入手动注入方法-程序员宅基地

文章浏览阅读1w次,点赞8次,收藏82次。SQL 手工注入文章目录SQL 手工注入0x01 SQL注入概述0x02 SQL 注入原理1.基本概述2.单引号的作用3.SQL 注入流程4.SQL 注入的基本分类3.常见注入方式分类0x03 部署 sqli-labs 学习环境1.sqli-labs 简介2.部署sqli-labs 实验环境2.1 搭建LAMP 环境2.2 检查安装的状态和启动服务2.3 配置 mysq 数据库 root 用户密码2.4 安装 sqli-labs 教学环境2.5 创建快照0x04 安装 hackbar 插件0x05 SQL_sql注入手动注入方法

FPGA【Verilog分频器】-程序员宅基地

文章浏览阅读1.8k次。在数字系统的设计中经常会碰到需要使用多个时钟的情况。时钟信号的产生通常具有两种方法,一种是使用PLL(Phase Locked Loop,锁相环),可生成倍频、分频信号;另一种则是使用硬件描述语言构建一个分频电路。分频器的设计通常分为以下三类:奇数分频器、偶数分频器及小数分频器。_verilog分频器

在Linux下用C语言程序获取指点文件大小_linux c语言获取文件大小-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏2次。在Linux里面有一个标准io操作光标的函数off_t lseek(int fd, off_t offset, int whence);,直接用他把光标移到最末尾就行了,这个函数的返回值就是当前光标位置相对于最前面的偏移量。(单位是字节)当然你的加上相应的头文件。int file_size(char* filename) { int fd = open(filename, O_RDONLY);//只读方式打开就够了 off_t num = lseek(fd, 0, SEEK_END_linux c语言获取文件大小

随便推点

Android特殊窗口之输入法窗口的添加策略_moving im target from window-程序员宅基地

文章浏览阅读2.6k次,点赞4次,收藏13次。本篇基于Android Q代码根据AppWindowToken和WindowToken的添加流程和排序规则我们知道Android细分了四大窗口容器,分别是存储输入法相关的mImeWindowsContainers,存储系统窗口的mAboveAppWindowsContainers,存储应用窗口的TaskStackContainers,存储壁纸窗口的mBelowAppWindowsContaine..._moving im target from window

python常见单词在手,编程入门不愁_python编程语言单词-程序员宅基地

文章浏览阅读1.3k次,点赞10次,收藏27次。人工智能时代,python编程语言站在风口起飞,2018年7月的世界编程语言排行榜跃居于编程语言前三,2018年的IEEE顶级编程语言交互排行榜中Python屠榜,彻底火了python,也相继让更多的人投入到了编程大军中。那么问题来了,没有任何编程基础,英语又不好,如何学习python编程语言呢?hey,伙计,不用怕,小编来帮你。 针对英语基础薄弱的同学呢,首先要放下心中的这..._python编程语言单词

使用MyEclipse导入项目方法-程序员宅基地

文章浏览阅读6.6w次,点赞47次,收藏239次。一、JDK安装及环境变量设置检查安装配置教程二、使用Myeclipse导入项目MyEclipse乱码解决项目可以不在MyWorkSpace里面 1、选择“File”–&gt;“Import”进入下图这个界面 2、点击“Next”进入下图; 3、并选择项目路径,整个上层文件添加进来,点击确定,得到下图,可以看到刚添加的项目 4、点击“Finish”就完成了..._myeclipse导入项目

探索XDeepFM:一种高效、精准的深度因子模型-程序员宅基地

文章浏览阅读413次,点赞4次,收藏7次。探索XDeepFM:一种高效、精准的深度因子模型项目地址:https://gitcode.com/batch-norm/xDeepFM项目简介XDeepFM 是一个用于推荐系统和点击率预测的开源深度学习框架。该项目源于阿里妈妈团队的研究成果,其目标是解决大规模数据下的特征交叉问题,并在效率与准确性之间取得平衡。通过引入跨组件和线性组件的设计,XDeepFM能够在保留丰富的高阶信息的同时保持模...

CSS实现三栏布局,左右宽度固定,中间宽度自适应_中间宽度自定义 两边固定宽度 高度是适应-程序员宅基地

文章浏览阅读476次。假设高度一定,请写出三栏布局,左右宽度300px,中间自适应。 首先要写好整个页面的布局: &lt;style&gt; html * { padding: 0; margin: 0; } .layout { margin-top: 20px; }..._中间宽度自定义 两边固定宽度 高度是适应

Keil&nbsp;Software&nbsp;&ndash;Cx51&nbsp;编译器…_keil mdk中如何使用cx51-程序员宅基地

文章浏览阅读1.4k次。Keil Software –Cx51 编译器用户手册中文完整版--页面标题 (摘于http://www.18ic.com/Html/mpumcu/2005122959_4.html)223 被零取模编译器检测到一个被零除或取模225 表达式太复杂需简化一个表达式太复杂必须分成两个或多个子表达式226 重复的struct/union/enum标记一个struct_keil mdk中如何使用cx51

推荐文章

热门文章

相关标签