写点什么

Android C++ 系列:Linux 常用函数和工具

作者:轻口味
  • 2021 年 12 月 17 日
  • 本文字数:1353 字

    阅读完需:约 4 分钟

1. 时间函数

1.1 文件访问时间

#include <sys/types.h>#include <utime.h>int utime (const char *name, const struct utimebuf *t); 返回:若成功则为 0,若出错则为- 1
复制代码


如果 times 是一个空指针,则存取时间和修改时间两者都设置为当前时间;


如果 times 是非空指针,则存取时间和修改时间被设置为 times 所指向的结构中的值。此 时,进程的有效用户 ID 必须等于该文件的所有者 ID,或者进程必须是一个超级用户进程。对 文件只具有写许可权是不够的


此函数所使用的结构是:


struct utimbuf {time_t actime; /*access time*/ time_t modtime; /*modification time*/ }
复制代码

1.2 cpu 使用时间

#include <sys/time.h> #include <sys/resource.h>int getrusage(int who, struct rusage *usage);
复制代码


  • RUSAGE_SELF:Return resource usage statistics for the calling process, which is the sum of resources used by all threads in the process.

  • RUSAGE_CHILDREN:Return resource usage statistics for all children of the calling process that have terminated and been waited for. These statis‐ tics will include the resources used by grandchildren, and fur‐ ther removed descendants, if all of the intervening descendants waited on their terminated children.

  • RUSAGE_THREAD (since Linux 2.6.26):Return resource usage statistics for the calling thread.

2. 网络工具

2.1 ifconfig

sudo ifconfig eth0 down/upsudo ifconfig eth0 192.168.102.123
复制代码

2.2 netstat

  • a (all)显示所有选项,默认不显示 LISTEN 相关

  • t (tcp)仅显示 tcp 相关选项

  • u (udp)仅显示 udp 相关选项

  • n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听) 的服務状态

  • p 显示建立相关链接的程序名 -r 显示路由信息,路由表

  • e 显示扩展信息,例如 uid 等 -s 按各个协议进行统计

  • c 每隔一个固定时间,执行该 netstat 命令。


LISTEN 和 LISTENING 的状态只有用-a 或者-l 才能看到:


 sudo netstat -anp | grep ftp
复制代码

2.3 设置 IP

以 DHCP 方式配置网卡:


  1. 编辑文件/etc/network/interfaces:sudo vi /etc/network/interfaces

  2. 并用下面的行来替换有关 eth0 的行:


# The primary network interface - use DHCP to find our addressauto eth0iface eth0 inet dhcp
复制代码


  1. 用下面的命令使网络设置生效:


 sudo /etc/init.d/networking restart
复制代码


  1. 也可以在命令行下直接输入下面的命令来获取地址:sudo dhclient eth0


为网卡配置静态 IP 地址:


  1. 编辑文件/etc/network/interfaces:sudo vi /etc/network/interfaces

  2. 用下面的行来替换有关 eth0 的行:


# The primary network interface auto eth0iface eth0 inet staticaddress 192.168.2.1gateway 192.168.2.254 netmask 255.255.255.0 #network 192.168.2.0 #broadcast 192.168.2.255
复制代码


  1. 将上面的 ip 地址等信息换成你自己就可以了.用下面的命令使网络设置生效:sudo /etc/init.d/networking restart

  2. 设置 DNS:要访问 DNS 服务器来进行查询,需要设置/etc/resolv.conf 文件, 假设 DNS 服务器的 IP 地址是 192.168.2.2, 那么/etc/resolv.conf 文件的内容应为:nameserver 192.168.2.2

  3. 手动重启网络服务:sudo /etc/init.d/networking restart

3. 总结

本文介绍了 Linux 常用命令工具及函数:文件访问时间函数、cpu 使用时间函数、ifconfig、netstat、设置 IP 方式等。

发布于: 1 小时前阅读数: 4
用户头像

轻口味

关注

🏆2021年InfoQ写作平台-签约作者 🏆 2017.10.17 加入

Android、音视频、AI相关领域从业者。 邮箱:qingkouwei@gmail.com

评论

发布
暂无评论
Android C++系列:Linux常用函数和工具