xref: /xv6-public/ulib.c (revision 43572072)
19b37d1bfSrsc #include "user.h"
29b37d1bfSrsc 
3c41f1de5Srtm int
4c41f1de5Srtm puts(char *s)
5c41f1de5Srtm {
617a85657Srtm   return write(1, s, strlen(s));
7c41f1de5Srtm }
8c41f1de5Srtm 
9b75c11b2Srsc char*
10b75c11b2Srsc strcpy(char *s, char *t)
11b75c11b2Srsc {
12b75c11b2Srsc 	char *os;
13b75c11b2Srsc 
14b75c11b2Srsc 	os = s;
15b75c11b2Srsc 	while((*s++ = *t++) != 0)
16b75c11b2Srsc 		;
17b75c11b2Srsc 	return os;
18b75c11b2Srsc }
1917a85657Srtm 
2017a85657Srtm unsigned int
2117a85657Srtm strlen(char *s)
2217a85657Srtm {
2317a85657Srtm   int n = 0;
2417a85657Srtm   for(n = 0; s[n]; n++)
2517a85657Srtm     ;
2617a85657Srtm   return n;
2717a85657Srtm }
2817a85657Srtm 
29*43572072Srtm void *
30*43572072Srtm memset(void *dst, int c, unsigned int n)
31*43572072Srtm {
32*43572072Srtm   char *d = (char *) dst;
33*43572072Srtm 
34*43572072Srtm   while(n-- > 0)
35*43572072Srtm     *d++ = c;
36*43572072Srtm 
37*43572072Srtm   return dst;
38*43572072Srtm }
39*43572072Srtm 
4017a85657Srtm char *
4117a85657Srtm gets(char *buf, int max)
4217a85657Srtm {
4317a85657Srtm   int i = 0, cc;
4417a85657Srtm   char c;
4517a85657Srtm 
4617a85657Srtm   while(i+1 < max){
4717a85657Srtm     cc = read(0, &c, 1);
4817a85657Srtm     if(cc < 1)
4917a85657Srtm       break;
5017a85657Srtm     if(c == '\n' || c == '\r')
5117a85657Srtm       break;
5217a85657Srtm     buf[i++] = c;
5317a85657Srtm   }
5417a85657Srtm   buf[i] = '\0';
5517a85657Srtm   return buf;
5617a85657Srtm }
57