获取系统时间

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语言实现的更多相关文章

  1. Linux下常用的操作

    Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...

  2. linux下MySQL安装登录及操作

    linux下MySQL安装登录及操作 二.安装Mysql 1.下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQL-server-4.0.16-0.i386.rpm MySQL-cl ...

  3. MongoDB在Linux下常用优化设置

    MongoDB在Linux下常用优化设置 以下是一些MongoDB推荐的常用优化设置.在生产环境下选取合适的参数值,例如预读值和默认文件描述符数目等,会对系统性能有很大的影响. 1.关闭数据库文件的 ...

  4. linux下常用的截图、录屏工具

    录屏: 在linux下常用的录屏工具有5种,可以baidu或者google下喔,我选用的是recordMydesktop,使用非常方便,用时注意先把每秒桢数调高,否则效果必然很差. 在ubuntu下可 ...

  5. Linux下常用的ftp操作命令

    Linux下常用的ftp操作命令 =========== 完美的分割线 ============= 1.登陆ftp服务器 ftp [IP] [PORT] # 登陆ftp服务器,本机登陆可以不写IP 实 ...

  6. linux下常用命令备忘

    转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删 ...

  7. zip,rar及linux下常用的压缩格式

    日常操作中我们经常使用到文件压缩操作,其使用一些特定的算法来减小文件的大小,可以提高传输数据时的速率和减少数据在一些存储机制上占有的空间大小,实现空间利用最大化. 比如:如果你想通过邮箱发送一个文件夹 ...

  8. linux下常用关机命令

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...

  9. Linux 下常用解压命令(转载)

    Linux下常用文件解压(包括rpm.deb包) Linux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress fi ...

随机推荐

  1. docker calico安装

      第一步,安装etcd: 请参考以前的文章:  http://www.cnblogs.com/vincenshen/articles/8637949.html 第二步,下载calico: sudo ...

  2. POJ 1144 无向图求割点

     学长写的: #include<cstdio>#include<cstdlib>#include<cmath>#include<iostream>#in ...

  3. CentOS 7(64位) 下Docker的安装

    系统要求是64位,内核版本至少3.10. 首先添加yum软件源: 之后更新yum软件源缓存,并安装docker-engine 查看docker 版本: Cannot connect to the Do ...

  4. 单选框radio 选择问题

    <input type="radio"  name="test"/> <input type="radio"  name= ...

  5. HBase-修改表结构

    HBase修改表结构 package com.hbase.HBaseAdmin; import java.io.IOException; import org.apache.hadoop.conf.C ...

  6. nodejs mysql 创建连接池

    用Nodejs连接MySQL 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javas ...

  7. QT QDockWidget锚接部件 和 QTreeWidget 树形部件 构成树形选择项

    1.  如图,在mainwindow中 添加DockWidget到右侧,里面镶嵌TreeWidget. 2. QTreeWidget *treeWidget = new QTreeWidget; // ...

  8. HDU 2203 kmp

    http://acm.hdu.edu.cn/showproblem.php?pid=2203 亲和串 Time Limit: 3000/1000 MS (Java/Others)    Memory ...

  9. vs 2005/2008/2010 ATL ActiveX控件显示XP风格

    vs 2005/2008/2010 ATL ActiveX控件在IE浏览器中控件显示的是原始的风格,要显示XP风格只要进行以下操作 一.在Stdafx.h中增加下以内容 #if defined _M_ ...

  10. cmd命令之查看进程到杀掉进程

    1. cmd命令查看当前进程 netstat -ano | findstr “port”