Hola!
Estoy trabajando con Linux en C.
Creo y escribo en un archivo de texto plano cualquier cosa con el siguiente código:
fd=open("infoEnlaces.txt", O_WRONLY | O_CREAT, 0600);
char * cad1 = "\t\t*** Fichero de Informacion de Enlaces ****\n\n";
if ( (nBytesEscritos = write(fd, cad1, strlen(cad1))) <= 0 ) {printf ("Error escritura titulo en archivo\n");}
Aparentemente funciona bien.
Al querer ver el contenido del archivo desde consola con "more infoEnlaces.txt" aparece todo correcto.
PERO si abro el archivo desde la interfaz gráfica, no puedo ver el contenido del archivo correctamente, aparecen unos caracteres extraños.
¿Qué hacer para poder ver el contenido del archivo correctamente desde interfaz gráfica?
Gracias!
Hola Selfmastery
Soy muy novato y no sé si tendrá algo que ver, pero cierras fd??
Aparte no sé qué más puede ser, a ver si algún experto...
Saludos
No me he peleado mucho con open , pero me parece que podría ser el segundo parametro el O_CREAT he buscado el manual de open y esto es lo que me pone en la descripción de dicho parametro
If O_CREAT is set and the file did not previously exist, upon successful completion, open() will mark for update the st_atime, st_ctime and st_mtime fields of the file and the st_ctime and st_mtime fields of the parent directory.
no vaya a ser que la dichosa marca que le pone sean los caracteres raros que ves ...
Por que razon no usas fopen ?
A mi tu código me funciona perfectamente, y puedo visualizarlo en consola y en gedit por poner. La verdad no se por que no te leerá en modo gráfico, pero debe ser ya cuestión de que editor estés usando y tema de juego de caracteres, pienso yo.
Didacso, la constante O_CREAT sirve para indicar de crear el fichero y abrirlo ( en el caso que exista se lo sobreescribe ), no creo que esto le este dando inconvenientes con la lectura del mismo.
Selfmastery, lo que podrias verificar es si open no te esta dando error...
fd = open( "infoEnlaces.txt", O_WRONLY | O_CREAT, 0600);
if ( fd == -1 )
puts( "ERROR: ..." );
Salu10.