if (lseek (file_fd, 0, SEEK_END) < 0)
if (__lseek (file_fd, 0, SEEK_END) < 0)
pututline_file (const struct utmp *data){  struct utmp buffer;  struct utmp *pbuf;  int found;  assert (file_fd >= 0);  /* Find the correct place to insert the data.  */  if (file_offset > 0      && (#if _HAVE_UT_TYPE - 0	  (last_entry.ut_type == data->ut_type	   && (last_entry.ut_type == RUN_LVL	       || last_entry.ut_type == BOOT_TIME	       || last_entry.ut_type == OLD_TIME	       || last_entry.ut_type == NEW_TIME))	  ||#endif	  proc_utmp_eq (&last_entry, data)))    found = 1;  else    found = internal_getut_r (data, &buffer);  LOCK_FILE (file_fd, F_WRLCK);  if (found < 0)    {      /* We append the next entry.  */      file_offset = lseek (file_fd, 0, SEEK_END);      if (file_offset % sizeof (struct utmp) != 0)	{	  file_offset -= file_offset % sizeof (struct utmp);	  __ftruncate (file_fd, file_offset);	  if (lseek (file_fd, 0, SEEK_END) < 0)	    {	      pbuf = NULL;	      goto unlock_return;	    }	}    }  else    {      /* We replace the just read entry.  */      file_offset -= sizeof (struct utmp);      lseek (file_fd, file_offset, SEEK_SET);    }  /* Write the new data.  */  if (write (file_fd, data, sizeof (struct utmp)) != sizeof (struct utmp))    {      /* If we appended a new record this is only partially written.	 Remove it.  */      if (found < 0)	(void) __ftruncate (file_fd, file_offset);      pbuf = NULL;    }  else    {      file_offset += sizeof (struct utmp);      pbuf = (struct utmp *) data;    } unlock_return:  UNLOCK_FILE (file_fd);  return pbuf;}