Si purtroppo è da un po che non uso IO con C e sto avendo qualche problemino , le cose + semplici di solito non mi vengono

#include "basic.h"

int MAX(int,int);

int MAX(int uno, int due){

if(uno > due)
return uno;
return due;
}

void client_somma(FILE *fp, int sockfd) {
int maxfdl;
fd_set rset;
char sendline[MAXLINE], sendline2[MAXLINE], recvline[MAXLINE];
int n;
char * str = (char*) malloc(MAXLINE);

FD_ZERO(&rset);
for( ; ; ) {

FD_SET(fileno(fp), &rset);
FD_SET(sockfd, &rset);
maxfdl = MAX(fileno(fp), sockfd) + 1;
if( select(maxfdl, &rset, NULL, NULL, NULL) < 0 )
err_sys("select error");

if( FD_ISSET(sockfd, &rset) ) {
if ( (n = reti_readline(sockfd, recvline, MAXLINE)) < 0) {
if( errno == EPIPE ) {
printf("str_cli: server terminated prematurely\n");
break;
}
else {
printf("errore %d\n", errno);
err_sys("readline error");
}
}
if (n == 0)
err_quit("str_cli: server terminated prematurely");

fputs(recvline, stdout);
}

if( FD_ISSET(fileno(fp), &rset) ) {
bzero(str, strlen(str));
/* if( fgets(sendline, MAXLINE, fp) == NULL)
return;
if( fgets(sendline2, MAXLINE, fp) == NULL)
return;*/
scanf("%s",&sendline);
scanf("%s",&sendline2);
strncat(str,sendline, strlen(sendline));
strncat(str," ", 1);
strncat(str,sendline2, strlen(sendline2));
strncat(str, "\n", 1);
if( (reti_writen(sockfd, str, strlen(str))) < 0)
err_sys("write error");
}
}
}

int main(int argc, char **argv) {
int sockfd, n;
struct sockaddr_in servaddr;

if (argc != 2)
err_quit("usage: client <IPaddress>");
if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
err_sys("socket error");

bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT); /* echo server con select */
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
err_quit("inet_pton error for %s", argv[1]);

if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0)
err_sys("connect error");

client_somma(stdin, sockfd); /* svolge tutto il lavoro del client */

exit(0);
}
Viene utilizzata la select nel client per gestire sia l'input da stdin che l'arrivo di dati sul socket connesso al server. La parte che mi riguarda la devo inserire dopo if( FD_ISSET(fileno(fp), &rset) ) cioè dove gestisco l'input da stdin