Con la lseek non credo che funzioni.
Puoi crearti una funzione tipo

codice:
int leggiStringa( char *str, int maxLen)
{
	int len;
	char ch[2];
	read(0, str, maxLen-1); // 0 STDIN
	len = strlen(str);
	if( str[len]!='\n' )
		while( read(0, ch, 1), ch[0]!='\n');
	str[len]=0;
	return len;
}
Nella dichiarazione della stringa non hai previsto lo spazio per il terminatore