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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  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 1,003 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 1,487 Último mensaje 11 Mayo 2006, 16:08 pm
por Eternal Idol
problema con escritura de archivos
Programación C/C++
drakolive 4 1,997 Último mensaje 2 Junio 2010, 22:03 pm
por Littlehorse
Dar permiso de escritura al fichero hosts
Programación Visual Basic
azkoiti 4 6,453 Último mensaje 1 Abril 2010, 18:37 pm
por azkoiti
problema de escritura en un pen drive « 1 2 »
Dudas Generales
politronic 10 5,315 Último mensaje 25 Noviembre 2011, 18:15 pm
por politronic
Problema de escritura en /var/www/html
GNU/Linux
yoelrodguez 4 1,545 Último mensaje 18 Abril 2015, 03:45 am
por yoelrodguez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines