#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;
}
socket是跟网络通信相关的类
参数SOCK_DGRAM代表UDP协议
你呀,一句一句的看,哪一句看不懂就查哪一句,都看不懂当然茫然了
那在C语言中什么是函数呢?
函数在许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,这就是程序中的函数。函数的特点就是简化代码,代码复用。
函数也分为自定义函数和C语言内部函数。
内部函数如:printf、scanf等等。
下面我们演示的是自定义函数。
代码演示:
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0; }
上述代码,写成函数如下:
#include <stdio.h>
int Add(int x, int y) {
int z = x+y;
return z; }
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0; }
上述的代码中Add就是我们自定义的一个函数。
我可以教你关于C语言的基础知识。首先,C语言是一种低级语言,它的语法相对简单,但需要编程者自己管理内存,所以需要更细致的思考。以下是一些基础知识:
例如,定义一个整型变量a:
int a;
例如,定义一个函数,它接受两个整型参数并返回它们的和:
int sum(int a, int b) {
return a + b;
}
例如,定义一个整型指针p,将其指向变量a:
int *p = &a;
例如,定义一个整型数组a:
int a[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("%d", a[i]);
}
例如,编写一个指针函数,统计数组中偶数个数以及质数个数,并计算偶数的和,并通过形参将这三个结果传递给调用函数:
void f(int* a, int n, int* neven, int* nprime, int* sumeven) {
int x = 0;
for (int j = 0; j < n; j++) {
x = a[j];
//以下为质数判断语句
if (x == 2 || x == 3)
*nprime += 1;
else {
for (int i = 2; i * i < x; i++) {
if (x % i == 0) continue;
*nprime += 1;
}
}
//以下为偶数判断语句
if (x % 2 == 0) {
*neven += 1;
*sumeven += x;
}
}
}
int main() {
int a[6] = { 6,5,4,3,2,1 };
int nEven = 0, nPrime = 0, sumEven = 0;
f(a, 6, &nEven, &nPrime, &sumEven);
printf("nEven %d nPrime %d sumEven %d", nEven, nPrime, sumEven);
}
例如,定义一个类Student,它具有成员变量m_name、m_age和m_score,以及一个构造函数,可以用于对成员变量进行初始化:
class Student{
private:
char *m_name;
int m_age;
float m_score;
public:
Student(char *name, int age, float score);
};
Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score)
{
//TODO:
}
int main(){
Student stu("小明", 15, 92.5f);
return 0;
}
希望以上的解答对你有所帮助,如果你还有更具体的问题,可以继续问我。
这是一个简单的 linux 下的网络通讯的程序,判断是否连线