Pagini recente » Cod sursa (job #2072899) | Statistici Antal Krisztian Tamas (AntalKrisztian) | Cod sursa (job #993742) | Cod sursa (job #482425) | Cod sursa (job #1334640)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include <stdio.h>
#include <string.h>
const char IN[] = "adunare.in", OUT[] = "adunare.out";
int A, B;
int fd, rc, size;
char * text;
char rez[10];
int main() {
fd = open(IN, O_RDONLY);
if ( fd < 0 )
return - 1;
size = lseek(fd, 0, SEEK_END);
lseek(fd, 0, SEEK_SET);
text = (char *)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0 );
if ( (void *) text == MAP_FAILED )
return -3;
sscanf(text, "%d %d", &A, &B);
sprintf(rez, "%d\n", A + B);
rc = munmap( (void *) text, size );
if ( rc < 0 )
return - 4;
rc = close(fd);
if ( rc < 0 )
return - 2;
fd = open(OUT, O_WRONLY | O_CREAT, 0644);
if ( fd < 0 )
return - 1;
write(fd, rez, strlen(rez));
rc = close(fd);
if ( rc < 0 )
return - 2;
return 0;
}