如何将 tcpdump 结果保存在 C 文件中?
How to save in C the tcpdump results in a file?
我正在编写一个 C 程序来在我的设备上执行 tcpdump。我在 C 中将命令作为普通终端命令与系统一起执行(“弄清楚为什么这不符合我的想法”);无论如何,我想将结果保存在一个文件中 我想将结果保存在一个文件中,该文件的名称由 C 中的变量指示。我该怎么做?这是我的代码:(变量是file_name,这是包含我要保存结果的文件名的变量)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main() {
char string_year[20];
char string_month[20];
char string_day[20];
time_t t = time(NULL);
struct tm tm = *localtime(&t);
//printf("now: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
int year = tm.tm_year + 1900;
int month = tm.tm_mon + 1;
int day = tm.tm_mday;
//printf("%d\n", year);
sprintf(string_year, "%d", year);
//printf("%s\n", string_year);
//printf("%d\n", month);
sprintf(string_month, "%d", month);
//printf("%s\n", string_month);
//printf("%d\n", day);
sprintf(string_day, "%d", day);
//printf("%s\n", string_day);
char file_name[80];
strcat(file_name, string_day);
strcat(file_name, "_");
strcat(file_name, string_month);
strcat(file_name, "_");
strcat(file_name, string_year);
strcat(file_name, ".pcap");
printf("%s\n", file_name);
system("tcpdump -i eth0 -w file_name");
return 0;
}
char system_input[100];
sprintf(system_input, "tcpdump -i eth0 -w %s", file_name);
system(system_input);
放在 file_name[]
中的第一项必须通过 strcpy()
完成 - 或 - 通过 file_name[0] = '[=12=]'
然后可以通过strcat()
附加所有其他数据
我正在编写一个 C 程序来在我的设备上执行 tcpdump。我在 C 中将命令作为普通终端命令与系统一起执行(“弄清楚为什么这不符合我的想法”);无论如何,我想将结果保存在一个文件中 我想将结果保存在一个文件中,该文件的名称由 C 中的变量指示。我该怎么做?这是我的代码:(变量是file_name,这是包含我要保存结果的文件名的变量)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main() {
char string_year[20];
char string_month[20];
char string_day[20];
time_t t = time(NULL);
struct tm tm = *localtime(&t);
//printf("now: %d-%02d-%02d %02d:%02d:%02d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
int year = tm.tm_year + 1900;
int month = tm.tm_mon + 1;
int day = tm.tm_mday;
//printf("%d\n", year);
sprintf(string_year, "%d", year);
//printf("%s\n", string_year);
//printf("%d\n", month);
sprintf(string_month, "%d", month);
//printf("%s\n", string_month);
//printf("%d\n", day);
sprintf(string_day, "%d", day);
//printf("%s\n", string_day);
char file_name[80];
strcat(file_name, string_day);
strcat(file_name, "_");
strcat(file_name, string_month);
strcat(file_name, "_");
strcat(file_name, string_year);
strcat(file_name, ".pcap");
printf("%s\n", file_name);
system("tcpdump -i eth0 -w file_name");
return 0;
}
char system_input[100];
sprintf(system_input, "tcpdump -i eth0 -w %s", file_name);
system(system_input);
放在 file_name[]
中的第一项必须通过 strcpy()
完成 - 或 - 通过 file_name[0] = '[=12=]'
然后可以通过strcat()