获取系统时间

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. hdu1010感想

    杭电这道题是用dfs走迷宫问题,一直wa是因为没有将走过的地方标记,所以如果遇到走迷宫的问题一定要将走过的地方标记,如下: &&nx<n&&ny>=& ...

  2. 获取本地IP并设置到QLineEdit中

    #include <QHostAddress> #include <QNetworkInterface> #include <QHostInfo> QString ...

  3. JMeter学习(七)聚合报告之 90% Line 正确理解

    90% Line 参数正确的含义: 虽然,我的上面理解有一定的道理,显然它是错误的.那看看JMeter 官网是怎么说的? 90% Line - 90% of the samples took no m ...

  4. 2.virtualenv安装和配置以及在PyCharm中如何使用虚拟环境

    virtualenv优点 使不同应用开发环境相互独立 环境升级不影响其它应用,也不会影响全局的python环境 它可以防止系统中出现包管理混乱和版本的冲突 1.使用virtualenv pip ins ...

  5. Flume架构及运行机制

    flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 clo ...

  6. 获取本机MSSQL保存凭证

    首先要感谢哥们对我的指点,多谢. 当我们遇到类似情况下,如何获取保存在MSSQL工具里的凭证呢?  //如果对方连接地址后面加了IP\sqlexpress 连接的时候你也记得加上,不然即使密码正确,也 ...

  7. 使用Jenkins进行持续集成

    首先,我们从Jenkins官方网站https://jenkins.io/下载最新的war包.虽然Jenkins提供了Windows.Linux.OS X等各种安装程序,但是,这些安装程序都没有war包 ...

  8. R语言常用语法总结

    ## 1. 数据输入 ##a$b # 数据框中的变量a = 15 # 赋值a <- 15 # 赋值a = c(1,2,3,4,5) # 数组(向量)b = a[1] # 数组下标,从1开始b = ...

  9. review14

    日期的格式化 Formatter类的format方法: format(格式化模式, 日期列表) 按着“格式化模式”返回“日期列表”中所列各个日期中所含数据(年,月,日,小时等数据)的字符串表示.“格式 ...

  10. CSS之动态相册

    注释还是比较详细的,所以我就不一一再说明了.--->运行效果图<--- (点击之前温馨提示一下:此picture是我自己的照片,本来不想拿出来的,后来觉得反正不会有很多人看到而且也没人认识 ...