ulib.c
来自「美国mit操作系统课程所用的一个教学操作系统xv6」· C语言 代码 · 共 109 行
C
109 行
#include "types.h"#include "stat.h"#include "fcntl.h"#include "user.h"char*strcpy(char *s, char *t){ char *os; os = s; while((*s++ = *t++) != 0) ; return os;}intstrcmp(const char *p, const char *q){ while(*p && *p == *q) p++, q++; return (uchar)*p - (uchar)*q;}uintstrlen(char *s){ int n; for(n = 0; s[n]; n++) ; return n;}void*memset(void *dst, int c, uint n){ char *d; d = dst; while(n-- > 0) *d++ = c; return dst;}char*strchr(const char *s, char c){ for(; *s; s++) if(*s == c) return (char*) s; return 0;}char*gets(char *buf, int max){ int i, cc; char c; for(i=0; i+1 < max; ){ cc = read(0, &c, 1); if(cc < 1) break; buf[i++] = c; if(c == '\n' || c == '\r') break; } buf[i] = '\0'; return buf;}intstat(char *n, struct stat *st){ int fd; int r; fd = open(n, O_RDONLY); if(fd < 0) return -1; r = fstat(fd, st); close(fd); return r;}intatoi(const char *s){ int n; n = 0; while('0' <= *s && *s <= '9') n = n*10 + *s++ - '0'; return n;}void*memmove(void *vdst, void *vsrc, int n){ char *dst, *src; dst = vdst; src = vsrc; while(n-- > 0) *dst++ = *src++; return vdst;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?