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

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

image.png


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/up
sudo 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 address
auto eth0
iface eth0 inet dhcp


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


sudo /etc/init.d/networking restart


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


为网卡配置静态IP地址:


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

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


# The primary network interface auto eth0
iface eth0 inet static
address 192.168.2.1
gateway 192.168.2.254 netmask 255.255.255.0 
#network 192.168.2.0 
#broadcast 192.168.2.255


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

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

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


3. 总结


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

目录
相关文章
|
3月前
|
安全 Linux Shell
四、Linux核心工具:Vim, 文件链接与SSH
要想在Linux世界里游刃有余,光会“走路”还不够,还得配上几样“高级装备”。首先是Vim编辑器,它像一把瑞士军刀,让你能在命令行里高效地修改文件。然后要懂“软硬链接”,软链接像个快捷方式,硬链接则是给文件起了个别名。最后,SSH是你的“传送门”,不仅能让你安全地远程登录服务器,还能用scp轻松传输文件,设置好密钥更能实现免-密登录,极大提升效率。
|
7月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
3月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
185 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
3月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
278 16
|
5月前
|
缓存 监控 Linux
Linux系统性能调优技巧和相关工具
Linux 作为一种应用应展和系统服务的优选操作系统,在处理性能和端到端点评估上持有出色表现。但是,在处理进程或系统处于低效状态时,性能调优就显得十分重要。本文将探讨一些 Linux 系统性能调优的常用技巧,并介绍相关工具
150 1
Linux系统性能调优技巧和相关工具
|
5月前
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
534 16
|
4月前
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。
|
7月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
376 32
|
6月前
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
162 0

热门文章

最新文章