Cod sursa(job #227865)

Utilizator ioanceaOancea Ionut-Francisc ioancea Data 5 decembrie 2008 17:49:40
Problema A+B Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>

#define MAXIM		12

void read_line(int fd, char *result)
{
	char temp[1];
	int nr;
		
	while (1)
	{
		nr = read(fd, temp, 1);
		if (-1 == nr || *temp == '\n')
			break;
		*result++ = temp[0];
	}
}

int main()
{

	int in_fd, out_fd;
	long sum;
	char a[MAXIM], b[MAXIM] ,s[MAXIM + 1];

	if ( -1 == (in_fd = open("adunare.in", O_RDONLY)))
		return 1;

	read_line(in_fd, a);
	read_line(in_fd, b);
	
	close(in_fd);

	sum = atol(a) + atol(b);

	memset(s, 0, MAXIM + 1);
	sprintf(s, "%ld\n", sum);

	if ( -1 == (out_fd = open("adunare.out", O_RDWR | O_CREAT, S_IRWXU)))
		return 1;
	write(out_fd, s, MAXIM + 1);
	close(out_fd);

	return 0;
}