46 lines
1.7 KiB
C
46 lines
1.7 KiB
C
|
/*
|
||
|
Copyright (C) 1989 by the Massachusetts Institute of Technology
|
||
|
|
||
|
Export of this software from the United States of America is assumed
|
||
|
to require a specific license from the United States Government.
|
||
|
It is the responsibility of any person or organization contemplating
|
||
|
export to obtain such a license before exporting.
|
||
|
|
||
|
WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
|
||
|
distribute this software and its documentation for any purpose and
|
||
|
without fee is hereby granted, provided that the above copyright
|
||
|
notice appear in all copies and that both that copyright notice and
|
||
|
this permission notice appear in supporting documentation, and that
|
||
|
the name of M.I.T. not be used in advertising or publicity pertaining
|
||
|
to distribution of the software without specific, written prior
|
||
|
permission. M.I.T. makes no representations about the suitability of
|
||
|
this software for any purpose. It is provided "as is" without express
|
||
|
or implied warranty.
|
||
|
|
||
|
*/
|
||
|
|
||
|
#include "krb_locl.h"
|
||
|
|
||
|
RCSID("$Id: getst.c,v 1.6 1997/03/23 03:53:11 joda Exp $");
|
||
|
|
||
|
/*
|
||
|
* getst() takes a file descriptor, a string and a count. It reads
|
||
|
* from the file until either it has read "count" characters, or until
|
||
|
* it reads a null byte. When finished, what has been read exists in
|
||
|
* the given string "s". If "count" characters were actually read, the
|
||
|
* last is changed to a null, so the returned string is always null-
|
||
|
* terminated. getst() returns the number of characters read, including
|
||
|
* the null terminator.
|
||
|
*/
|
||
|
|
||
|
int
|
||
|
getst(int fd, char *s, int n)
|
||
|
{
|
||
|
int count = n;
|
||
|
while (read(fd, s, 1) > 0 && --count)
|
||
|
if (*s++ == '\0')
|
||
|
return (n - count);
|
||
|
*s = '\0';
|
||
|
return (n - count);
|
||
|
}
|