¿Cómo puedo eliminar algún fichero en C?

Iniciado por TopoJunior, 9 Abril 2013, 16:16 PM

0 Miembros y 1 Visitante están viendo este tema.

TopoJunior

Por ejemplo, yo le doy la ruta de donde está, y quiero que lo elimine. ¿Cómo lo hago?

Puntoinfinito

Código (cpp) [Seleccionar]

#include <stdio.h>

int main ()

{
  if( remove( "/usr/myfile.txt" ) == -1 )
    perror( "Error deleting file" );
  else
    puts( "File successfully deleted" );
  return 0;
}


Saludos  ;D
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

durasno

Hola! la funcion remove retorna cero en caso de exito, de lo contrario un valor distinto de cero. Entonces la condicion del if seria distinto de 0

Saludos
Ahorrate una pregunta, lee el man

Puntoinfinito

Cita de: durasno en 10 Abril 2013, 00:49 AM
Hola! la funcion remove retorna cero en caso de exito, de lo contrario un valor distinto de cero. Entonces la condicion del if seria distinto de 0

Saludos

Sí, un numero diferente a 0, concretamente el -1. Es lo mismo
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

rir3760

Cita de: Puntoinfinito en 10 Abril 2013, 15:05 PM
Cita de: durasno en 10 Abril 2013, 00:49 AMla funcion remove retorna cero en caso de exito, de lo contrario un valor distinto de cero. Entonces la condicion del if seria distinto de 0

Sí, un numero diferente a 0, concretamente el -1. Es lo mismo
No. No es lo mismo.

Hay que tener cuidado cuando el valor de retorno de una función no esta especificado porque eso puede causar problemas, por ejemplo si el programa se porta a otra plataforma.

Un ejemplo en la misma linea es la función "isdigit" (prototipo en <ctype.h>), su especificación indica que retornara un valor diferente de cero si el carácter es un dígito y cero en caso contrario. A mi me encantaría que retornara 1 o 0 pero en mi caso esta retorna 4 o 0.

Otro ejemplo es EOF, este usualmente es -1 pero, de nuevo, lo mejor es no confiarnos y solo asumir que es "algún valor negativo".

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Puntoinfinito

Cita de: rir3760 en 10 Abril 2013, 16:01 PM
Sí, un numero diferente a 0, concretamente el -1. Es lo mismo
No. No es lo mismo.

Hay que tener cuidado cuando el valor de retorno de una función no esta especificado porque eso puede causar problemas, por ejemplo si el programa se porta a otra plataforma.

Un ejemplo en la misma linea es la función "isdigit" (prototipo en <ctype.h>), su especificación indica que retornara un valor diferente de cero si el carácter es un dígito y cero en caso contrario. A mi me encantaría que retornara 1 o 0 pero en mi caso esta retorna 4 o 0.

Otro ejemplo es EOF, este usualmente es -1 pero, de nuevo, lo mejor es no confiarnos y solo asumir que es "algún valor negativo".

Un saludo

Bueno, yo solo lo he hecho porque se que este parámetro da -1, ya se que otros no, y cuando ya si eso, generalizo y pongo > 0
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

naderST

Cita de: Puntoinfinito en 10 Abril 2013, 16:16 PM
Bueno, yo solo lo he hecho porque se que este parámetro da -1, ya se que otros no, y cuando ya si eso, generalizo y pongo > 0

El operador que estás buscando es != (Distinto de) porque pudiera ser un valor negativo, recuerda que es distinto de cero.

amchacon

Teniendo el operador ! no es más fácil:

Código (cpp) [Seleccionar]
if (!remove( "/usr/myfile.txt" ))
       puts( "File successfully deleted" );
  else
        perror( "Error deleting file" );
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar