微笑着敲代码 2023-06-19 14:55 采纳率: 0%
浏览 43

刚接触C语言,不是很懂

#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <linux/if.h>
#include <linux/sockios.h>
2.定义函数
int check_link(const char *ifname)
{
    int fd;
    struct ifreq ifr;

    fd = socket(AF_INET, SOCK_DGRAM, 0);
    if (fd < 0) {
        perror("socket");
        return -1;
    }

    memset(&ifr, 0, sizeof(ifr));
    strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1);

    if ((ioctl(fd, SIOCGIFFLAGS, &ifr) == 0) && (ifr.ifr_flags & IFF_RUNNING)) {
        printf("%s is up.\n", ifname);
        close(fd);
        return 1;
    }
    else {
        printf("%s is down.\n", ifname);
        close(fd);
        return 0;
    }
}
3.调用函数
int main(int argc, char *argv[])
{
    if (argc < 2) {
        fprintf(stderr, "Usage: %s <interface name>\n", argv[0]);
        return 1;
    }

    if (check_link(argv[1]) < 0) {
        fprintf(stderr, "Failed to check the link.\n");
        return 1;
    }

    return 0;
}
  • 写回答

3条回答 默认 最新

  • 於黾 2023-06-19 15:08
    关注

    socket是跟网络通信相关的类
    参数SOCK_DGRAM代表UDP协议
    你呀,一句一句的看,哪一句看不懂就查哪一句,都看不懂当然茫然了

    评论

报告相同问题?

问题事件

  • 创建了问题 6月19日

悬赏问题

  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因