Buenas, estoy intentando desarrollar un programa que crea un archivo temporal y guarda en el los ping que responden correctamente:
#define _CRT_NO_SECURE_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#define MAX_SIZE 999
void nyuarchivo1(char* nyuadnsips) {
printf("El archivo dnsips.txt ya ha sido creado, adivina acontinuacion nombre y ubicacion ");
if (fgets(nyuadnsips, MAX_SIZE, stdin) == NULL) {
printf("Mal, mal empezamos no se guardo ni el nombre ni la ubicacion");
return;
}
nyuadnsips[strcspn(nyuadnsips, "\n")] = '\0';
printf("El nombre que figura dentro de la cadena es: %s", nyuadnsips);
printf("\n \n");
FILE* archivo1 = fopen(nyuadnsips, "r");
if (archivo1 == NULL) {
printf("ERROR, el archivo realmente noe existe");
return;
}
int c;
while ((c=fgetc(archivo1)) != EOF) {
putchar(c);
}
fclose(archivo1);
}
void adns(char* dns, char* primernetsh) {
printf("¿Que adaptador de red que quiere modificar?");
if (fgets(dns, MAX_SIZE, stdin) == NULL) {
printf("Mal, mal empezamos no es un buen reciclaje");
return;
}
dns[strcspn(dns, "\n")] = '\0';
printf("El nombre que figura dentro de la cadena es: %s", dns);
printf("\n \n");
snprintf(primernetsh, MAX_SIZE, "netsh interface ip show dns name= \"%s\"",dns);
int resultado=system(primernetsh);
}
void ccpings(char* cadena1, char* cadena2, char* cadena3, char* cadena4, char* ping1, char* ping2, char* ping3, char* ping4) {
FILE* temporal = tmpfile();
if (temporal == NULL) {
printf("Primer archivo temporal fallido");
return;
}
printf("AHORA, el siguiente paso es hacer un ping a las IPs, para eso, hay que ponerlas en cadenas, despues sera necesario, usar la snetencia snprintf, otra vez, para construir los comandos pings que comprobaran cuales son viables, ¿OK? y si sera hacer la cadena y hacer el ping a esa cadena, no esperaremos a tenerlas todas, asi de esa manera trabajamos con ellas individualmente: ");
printf("Cadena 1: ");
if (fgets(cadena1, MAX_SIZE, stdin) == NULL) {
printf("Mal, mal empezamos no es un buen reciclaje");
return;
}
cadena1[strcspn(cadena1, "\n")] = '\0';
printf("\n \n");
printf("YYY la IP numero 1 essss: %s", cadena1);
printf("\n \n");
printf("Y Ahoora el piing");
printf("\n \n");
snprintf(ping1, MAX_SIZE, "ping -n 4 %s", cadena1);
int valor1 = system(ping1);
if (valor1 != 0) {
fprintf(temporal, "%s", cadena1);
}
fclose(temporal);
}
int main() {
char nyuadnsips[MAX_SIZE]="D:\\Dnsips.txt";
char dns[MAX_SIZE];
char primernetsh[MAX_SIZE];
char cadena1[MAX_SIZE];
char cadena2[MAX_SIZE];
char cadena3[MAX_SIZE];
char cadena4[MAX_SIZE];
char ping1[MAX_SIZE];
char ping2[MAX_SIZE];
char ping3[MAX_SIZE];
char ping4[MAX_SIZE];
printf("\n");
nyuarchivo1(nyuadnsips);
printf("\n");
adns(dns, primernetsh);
ccpings(cadena1, cadena2, cadena3, cadena4, ping1, ping2, ping3, ping4);
return 0;
}
Estoy buscando el archivo temporal en C: Windows Temp pero no me sale ningun archivo creado con el nombre temporal quisiera saber, ¿Mi codigo es correcto?, ¿Hay algo mal en la funcion ccpings, que haga que no se cree el archivo temporal?