#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define MAX_RUTA 150
int main(int argc, char** argv) {
char ruta[MAX_RUTA];
int permisos;
char mensaje1[]="76543210";
char mensaje2[]="ABCDEFGH";
int fd;
if(argc==3){//Introducion de comandos por linea de comandos
permisos
=strtol(argv
[2],NULL
,8); }
else{//Introducion de comandos manual
printf("Introduce la ruta\n"); printf("Introduce los permisos\n"); }
fd=open(ruta,O_RDWR|O_CREAT,permisos);//Apertura o creacion del archivo
if(fd<0){
}
if(write
(fd
,mensaje1
,strlen(mensaje1
))<0){//Escritura del mensaje1 }
if(write
(fd
,mensaje2
,strlen(mensaje2
))<0){//Escritura del mensaje2 }
if(write
(fd
,mensaje1
,strlen(mensaje1
))<0){//Escritura del mensaje1 }
lseek (fd,-1, SEEK_END);//Reposicionado del puntero lectura/escritura
if(write
(fd
,mensaje2
,strlen(mensaje2
))<0){//Escritura del mensaje2 }
printf("Permisos: %o\n",permisos
); }
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?