如何编辑用系统命令创建的 C 文本文件?

How to edit a text file in C created with a system command?

我编写了一个程序来在 linux 终端上打印 运行 的 "Traceroute" 命令的输出。这里的代码:

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <time.h>

#include "SourceIP.c"
#include "RandomTraceroute.c"
#include "Time.c"

int main()
{
    unsigned char sourceIP[15];
    source(sourceIP);   
    printf("%s\n",sourceIP);

    unsigned char destIP[15];
    randIP(destIP); 
    printf("%s\n",destIP);

    char buff[100];
    timestamp(buff);
    printf ("%s\n", buff);

    char buf[BUFSIZ];
    snprintf(buf, sizeof(buf),"traceroute -q 1 %s >output.txt",destIP);
    system(buf);

    return 0;
}

任务是通过删除文本文件的现有第一行,将前三行 printf 行打印为 output.txt 文件的前三行。任何人都可以为此提出答案。 (请同时考虑代码的时间复杂度)

您如何看待以下代码:

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <time.h>

#include "SourceIP.c"
#include "RandomTraceroute.c"
#include "Time.c"

int main()
{
    FILE *f = fopen("output.txt", "w");

    unsigned char sourceIP[15];
    source(sourceIP);   
    fprintf(f, "%s\n", sourceIP);

    unsigned char destIP[15];
    randIP(destIP); 
    fprintf(f, "%s\n", destIP);

    char buff[100];
    timestamp(buff);
    fprintf(f, "%s\n", buff);

    fclose(f);

    char buf[BUFSIZ];
    snprintf(buf, sizeof(buf),"traceroute -q 1 %s 2> /dev/null >> output.txt", destIP);
    system(buf);

    return 0;
}