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 + -
显示快捷键?