关于getchar函数

如果只读一个字符该如何修改代码
int getc(void)
{
static char buf[BUFSIZ];
static char* bb=buf;
static int n=0;
if(n==0)
{
n=read(buf,BUFSIZ);
bb=buf;
}
return (--n>=0)?(char)*bb++:EOF;
}

img

n=read(buf, BUFSIZ)改成n=read(buf, 1)

把n=read(buf, BUFSIZ)改成n=read(buf, 1)试试?

// ...
n = read(buf, 1);
// ...