linux下常用的基本设置与操作C语言实现
获取系统时间
int getlocaltime(struct tm *time)
{
struct timeval tv;
time_t second;
struct tm *temp;
gettimeofday(&tv, NULL);
second = tv.tv_sec;
temp = localtime(&second);
temp->tm_year += ;
temp->tm_mon += ;
memcpy(time, temp,sizeof(struct tm));
;
}
设置系统时间
int setlocaltime(struct tm *tm)
{
time_t timesec;
struct timeval tv;
struct tm temptm;
memcpy(&temptm,tm,sizeof(temptm));
temptm.tm_year = tm->tm_year - ;
temptm.tm_yday = ;
temptm.tm_isdst = -; /* Be sure to recheck dst. */
timesec = mktime(&temptm);
tv.tv_sec = timesec;
tv.tv_usec = ;
settimeofday(&tv,); //设置系统时间
;
}
获取IP地址
void getip(unsigned char* ip_buf,char * name)
{
struct ifreq temp;
struct sockaddr_in *myaddr;
;
;
strcpy(temp.ifr_name, name);
))<)
{
return NULL;
}
ret = ioctl(fd, SIOCGIFADDR, &temp);
close(fd);
)
return NULL;
myaddr = (struct sockaddr_in *)&(temp.ifr_addr);
strcpy(ip_buf, inet_ntoa(myaddr->sin_addr));
printf("getip:%s\n",ip_buf);
}
设置IP地址
int setip(char* ip)
{
struct ifreq temp;
struct sockaddr_in *addr;
;
;
strcpy(temp.ifr_name, "eth0");
))<)
{
;
}
addr = (struct sockaddr_in *)&(temp.ifr_addr);
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = inet_addr(ip);
ret = ioctl(fd, SIOCSIFADDR, &temp);
close(fd);
)
;
;
}
检查网线是否连接
int check_nic(void)
{
struct ifreq ifr;
);
strcpy(ifr.ifr_name, "eth0");
)
{
close(skfd);
;
}
if(ifr.ifr_flags & IFF_RUNNING)
{
printf("link up\n");
close(skfd);
; // 网卡已插上网线
}
else
{
printf("link down\n");
close(skfd);
;
}
}
读取本机MAC地址
int read_mac(unsigned char *buf,char *name)
{
int sock;
int ret;
struct ifreq ifr;
sock = socket(AF_INET, SOCK_DGRAM, );
)
{
perror("socket error");
;
}
memset(&ifr, , sizeof(ifr));
strcpy(ifr.ifr_name, name);
ifr.ifr_name[] = '\0';
ret = ioctl(sock,SIOCGIFHWADDR,&ifr);
)
{
memcpy(buf, ifr.ifr_hwaddr.sa_data, );
printf("HW address is: %02x:%02x:%02x:%02x:%02x:%02x \n",
(unsigned ], (unsigned ], (unsigned ],
(unsigned ], (unsigned ], (unsigned ]);
}
else
{
perror("ioctl error!\n");
}
close(sock);
return ret;
}
判断文件是否存在
int is_file_exist(const char *file_path)
{
if(file_path == NULL)
;
)
;
;
}
linux下常用的基本设置与操作C语言实现的更多相关文章
- Linux下常用的操作
Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...
- linux下MySQL安装登录及操作
linux下MySQL安装登录及操作 二.安装Mysql 1.下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQL-server-4.0.16-0.i386.rpm MySQL-cl ...
- MongoDB在Linux下常用优化设置
MongoDB在Linux下常用优化设置 以下是一些MongoDB推荐的常用优化设置.在生产环境下选取合适的参数值,例如预读值和默认文件描述符数目等,会对系统性能有很大的影响. 1.关闭数据库文件的 ...
- linux下常用的截图、录屏工具
录屏: 在linux下常用的录屏工具有5种,可以baidu或者google下喔,我选用的是recordMydesktop,使用非常方便,用时注意先把每秒桢数调高,否则效果必然很差. 在ubuntu下可 ...
- Linux下常用的ftp操作命令
Linux下常用的ftp操作命令 =========== 完美的分割线 ============= 1.登陆ftp服务器 ftp [IP] [PORT] # 登陆ftp服务器,本机登陆可以不写IP 实 ...
- linux下常用命令备忘
转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删 ...
- zip,rar及linux下常用的压缩格式
日常操作中我们经常使用到文件压缩操作,其使用一些特定的算法来减小文件的大小,可以提高传输数据时的速率和减少数据在一些存储机制上占有的空间大小,实现空间利用最大化. 比如:如果你想通过邮箱发送一个文件夹 ...
- linux下常用关机命令
linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...
- Linux 下常用解压命令(转载)
Linux下常用文件解压(包括rpm.deb包) Linux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress fi ...
随机推荐
- java instrumentation &JVMTI
Java Instrumentation (参考:http://www.ibm.com/developerworks/cn/java/j-lo-jse61/) 简介: 使用Instrumentatio ...
- Eclipse开发快捷键精选
1.alt+?或alt+/:自动补全代码或者提示代码2.ctrl+o:快速outline视图3.ctrl+shift+r:打开资源列表4.ctrl+shift+f:格式化代码5.ctrl+e:快速转换 ...
- Centos6.5安装php5.6.7
1. 下载 官网:http://php.net/downloads.php wget http://cn2.php.net/get/php-5.6.7.tar.gz/from/this/mirror ...
- LeetCode——sum-root-to-leaf-numbers
Question Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a ...
- JS,Jquery获取屏幕的宽度和高度
Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...
- Spark性能优化指南--基础篇
前言 开发调优 调优概述 原则一:避免创建重复的RDD 原则二:尽可能复用同一个RDD 原则三:对多次使用的RDD进行持久化 原则四:尽量避免使用shuffle类算子 原则五:使用map-side预聚 ...
- Codeforces Round #280 (Div. 2) D. Vanya and Computer Game 数学
D. Vanya and Computer Game time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- js添加后缀防止缓存
jsp页面: 时间戳的话需要引入: <%@ page import="java.util.Date"%> <script type="text/java ...
- 使用npm安装github仓库中的代码
我们在使用npm下载包的时候,一般是下载在npm官网发布过的.可以指定版本,指定依赖等等. 但是,对于一个团队或公司,需要从自己的工作账号拉取代码,npm是直接支持从git仓库安装的. 最近遇到的一个 ...
- Android框架之路——GreenDao3.2.2的使用
一.简介 GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣.它减轻开发人员处理低级数据库需求,同时节省开发时间. SQLite是一个令人敬畏的内嵌的关系数据库,编 ...