Come da titolo come faccio a dire al compilatore in quale momento deve usare una read e quando l'altra???

Ad esempio ho questo pezzo di codice:

codice:
while(1) {
		if ((n = read(sockd, line, MAXLINE)) == 0)  //read socket
			return; /* il client ha chiuso la connessione e inviato EOF */
		printf("%s__\n",line);
		if(file = open(line,O_RDONLY)!=-1) {
			printf("Opening file\n");
 			exit(1);
		}
		while(read(file,buf,MAXBUFFLEN)>0) {  // read file
			printf("Reading frome file\n");
			if (write(sockd, buf, MAXBUFFLEN) != n) {
				fprintf(stderr, "errore in write");
				exit(1);
			}      
		}
	}


Grazie