Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: TopoJunior en 9 Abril 2013, 16:16 pm



Título: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: TopoJunior en 9 Abril 2013, 16:16 pm
Por ejemplo, yo le doy la ruta de donde está, y quiero que lo elimine. ¿Cómo lo hago?


Título: Re: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: Puntoinfinito en 9 Abril 2013, 16:47 pm
Código
  1. #include <stdio.h>
  2.  
  3. int main ()
  4.  
  5. {
  6.  if( remove( "/usr/myfile.txt" ) == -1 )
  7.    perror( "Error deleting file" );
  8.  else
  9.    puts( "File successfully deleted" );
  10.  return 0;
  11. }

Saludos  ;D


Título: Re: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: 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


Título: Re: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: Puntoinfinito en 10 Abril 2013, 15:05 pm
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


Título: Re: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: rir3760 en 10 Abril 2013, 16:01 pm
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

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


Título: Re: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: Puntoinfinito en 10 Abril 2013, 16:16 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


Título: Re: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: naderST en 10 Abril 2013, 17:03 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.


Título: Re: ¿Cómo puedo eliminar algún fichero en C?
Publicado por: amchacon en 10 Abril 2013, 20:43 pm
Teniendo el operador ! no es más fácil:

Código
  1. if (!remove( "/usr/myfile.txt" ))
  2.       puts( "File successfully deleted" );
  3.  else
  4.        perror( "Error deleting file" );
  5.