Discussion:
Un par de dudas
(demasiado antiguo para responder)
Poveda
2004-05-25 21:38:48 UTC
Permalink
Tengo un par de dudas sobre funciones de c:

1.- Cuando se crea un flujo de datos en un fichero ( *FILE) , los modos de
apertura "r" "w" "a" los comprendo, pero ¿que diferencia hay entre "r+"
"w+" y "a+"?
En concreto cual es la diferencia entre "w+" y "r+".

2.- Como puedo usar la funcion system para renombrar un fichero, no me
funcionan cosas como
system ("ren %s %s.bak",nombre_fichero,nombre_fichero);
fermath
2004-05-25 23:43:12 UTC
Permalink
Hola,
Post by Poveda
1.- Cuando se crea un flujo de datos en un fichero ( *FILE) , los
modos de apertura "r" "w" "a" los comprendo, pero ¿que diferencia hay
entre "r+" "w+" y "a+"?
En concreto cual es la diferencia entre "w+" y "r+".
En principio ambos modos sirven para abrir un fichero de texto para
lectura/escritura. Las diferencias son:

1.- "r+" no destruye el contenido del fichero si éste existe. "w+" sí lo
destruye.

2.- "r+" no crea el fichero si no existe (devolvera NULL, supongo),
"w+" sí lo crea.
Post by Poveda
2.- Como puedo usar la funcion system para renombrar un fichero, no me
funcionan cosas como
system ("ren %s
%s.bak",nombre_fichero,nombre_fichero);
Prueba esto

sprintf(orden,"ren %s %s.bak",nombre_fichero,nombre_fichero);
system(orden);

Saludos
Poveda
2004-05-26 11:00:44 UTC
Permalink
Post by fermath
Hola,
Post by Poveda
1.- Cuando se crea un flujo de datos en un fichero ( *FILE) , los
modos de apertura "r" "w" "a" los comprendo, pero ¿que diferencia hay
entre "r+" "w+" y "a+"?
En concreto cual es la diferencia entre "w+" y "r+".
En principio ambos modos sirven para abrir un fichero de texto para
1.- "r+" no destruye el contenido del fichero si éste existe. "w+" sí lo
destruye.
2.- "r+" no crea el fichero si no existe (devolvera NULL, supongo),
"w+" sí lo crea.
Post by Poveda
2.- Como puedo usar la funcion system para renombrar un fichero, no me
funcionan cosas como
system ("ren %s
%s.bak",nombre_fichero,nombre_fichero);
Prueba esto
sprintf(orden,"ren %s %s.bak",nombre_fichero,nombre_fichero);
system(orden);
Saludos
Muchas zenkius.
Ya veo la diferencia entre los modos de apertura.
No conocía la función sprintf ni sscanf pero son muy útiles, una gran
idea para formar correctamente la cadena que necesita system.
J.A. Gutierrez
2004-05-26 15:13:33 UTC
Permalink
Poveda <***@email.com> wrote:

: 2.- Como puedo usar la funcion system para renombrar un fichero, no me
: funcionan cosas como
: system ("ren %s %s.bak",nombre_fichero,nombre_fichero);

mejor que usar system para eso, utiliza las llamadas al
sistema correspondientes.
p.e. en POSIX, 4.3BSD, ANSI C


#include <stdio.h>
int rename(const char *old, const char *new);
--
finger ***@shiva.cps.unizar.es for PGP /
.mailcap tip of the day: / La vida es una carcel
application/ms-tnef; cat '%s' > /dev/null / con las puertas abiertas
text/x-vcard; cat '%s' > /dev/null / (A. Calamaro)
Poveda
2004-05-26 16:19:41 UTC
Permalink
Post by J.A. Gutierrez
: 2.- Como puedo usar la funcion system para renombrar un fichero, no
: me funcionan cosas como
: system ("ren %s
: %s.bak",nombre_fichero,nombre_fichero);
mejor que usar system para eso, utiliza las llamadas al
sistema correspondientes.
p.e. en POSIX, 4.3BSD, ANSI C
#include <stdio.h>
int rename(const char *old, const char *new);
Gracias también por la nueva solución , veo que desconozco muchas de las
funciones disponibles en ANSI C , ¿ donde podría encontrar documentación
sobre todas las funciones comunmente implementadas en los compiladores?
Actualmente estoy con Dev-C++.
Bartomeu
2004-05-26 20:08:32 UTC
Permalink
Post by Poveda
Post by J.A. Gutierrez
Post by Poveda
2.- Como puedo usar la funcion system para renombrar un fichero, no
me funcionan cosas como
system ("ren %s
%s.bak",nombre_fichero,nombre_fichero);
mejor que usar system para eso, utiliza las llamadas al
sistema correspondientes.
p.e. en POSIX, 4.3BSD, ANSI C
#include <stdio.h>
int rename(const char *old, const char *new);
Gracias también por la nueva solución , veo que desconozco muchas de
las funciones disponibles en ANSI C , ¿ donde podría encontrar
documentación sobre todas las funciones comunmente implementadas en
los compiladores? Actualmente estoy con Dev-C++.
http://laurel.datsi.fi.upm.es/~rpons/personal/trabajos/curso_c/node142.html
Loading...