elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema en un programa de escritura de fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema en un programa de escritura de fichero  (Leído 2,010 veces)
ferchundo9

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Problema en un programa de escritura de fichero
« en: 23 Diciembre 2017, 23:09 pm »

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sys/types.h>
  5. #include <sys/stat.h>
  6. #include <fcntl.h>
  7. #include <unistd.h>
  8.  
  9. #define MAX_RUTA 150
  10.  
  11. int main(int argc, char** argv) {
  12. char ruta[MAX_RUTA];
  13. int permisos;
  14. char mensaje1[]="76543210";
  15. char mensaje2[]="ABCDEFGH";
  16. int fd;
  17. if(argc==3){//Introducion de comandos por linea de comandos
  18. memcpy(ruta,argv[1],strlen(argv[1]));
  19. permisos=strtol(argv[2],NULL,8);
  20. }
  21. else{//Introducion de comandos manual
  22. printf("Introduce la ruta\n");
  23. scanf("%s",ruta);
  24. printf("Introduce los permisos\n");
  25. scanf("%o",&permisos);
  26. }
  27. fd=open(ruta,O_RDWR|O_CREAT,permisos);//Apertura o creacion del archivo
  28. if(fd<0){
  29. perror("creat");
  30. exit(EXIT_FAILURE);
  31. }
  32. if(write(fd,mensaje1,strlen(mensaje1))<0){//Escritura del mensaje1
  33. perror("write1");
  34. exit(EXIT_FAILURE);
  35. }
  36. if(write(fd,mensaje2,strlen(mensaje2))<0){//Escritura del mensaje2
  37. perror("write2");
  38. exit(EXIT_FAILURE);
  39. }
  40. if(write(fd,mensaje1,strlen(mensaje1))<0){//Escritura del mensaje1
  41. perror("write3");
  42. exit(EXIT_FAILURE);
  43. }
  44. lseek (fd,-1, SEEK_END);//Reposicionado del puntero lectura/escritura
  45. if(write(fd,mensaje2,strlen(mensaje2))<0){//Escritura del mensaje2
  46. perror("write2");
  47. exit(EXIT_FAILURE);
  48. }
  49. printf("Ruta: %s\n",ruta);
  50. printf("Permisos: %o\n",permisos);
  51. }

El problema está en que en la escritura del ultimo mensaje sobreescribe el último caracter del mensaje1 cosa que deseo evitar. Mi objetivo es la inserción entre los dos caracteres. Alguna solución?


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
escritura concurrente en un fichero
Programación Visual Basic
OssoH 5 2,543 Último mensaje 11 Mayo 2006, 16:08 pm
por Eternal Idol
problema con escritura de archivos
Programación C/C++
drakolive 4 3,119 Último mensaje 2 Junio 2010, 22:03 pm
por Littlehorse
Dar permiso de escritura al fichero hosts
Programación Visual Basic
azkoiti 4 7,456 Último mensaje 1 Abril 2010, 18:37 pm
por azkoiti
problema de escritura en un pen drive « 1 2 »
Dudas Generales
politronic 10 7,487 Último mensaje 25 Noviembre 2011, 18:15 pm
por politronic
Necesito ayuda con RandomAccessFile escritura Fichero
Java
SonnyCrockett 3 3,797 Último mensaje 10 Octubre 2022, 15:41 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines