⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trcrv.c

📁 su 的源代码库
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       */#include	"sftest.h"#if __STD_Cssize_t myread(Sfio_t* f, Void_t* buf, size_t n, Sfdisc_t* disc)#elsessize_t myread(f, buf, n, disc)Sfio_t*	f;Void_t*	buf;size_t	n;Sfdisc_t* disc;#endif{	return sfrd(f,buf,n,disc);}Sfdisc_t Disc = {myread, NIL(Sfwrite_f), NIL(Sfseek_f), NIL(Sfexcept_f)};MAIN(){	int	fd[2];	if(pipe(fd) < 0)		terror("Can't open pipe\n");	if(sfnew(sfstdin,NIL(Void_t*),(size_t)SF_UNBOUND,fd[0],SF_READ) != sfstdin)		terror("Can't initialize sfstdin\n");	sfset(sfstdin,SF_SHARE,1);	sfdisc(sfstdin,&Disc);	if(sfnew(sfstdout,NIL(Void_t*),0,fd[1],SF_WRITE) != sfstdout)		terror("Can't initialize sfstdout\n");	sfputr(sfstdout,"111\n222\n333\n",-1);	sfsync(sfstdout);	if(strcmp(sfgetr(sfstdin,'\n',1),"111") != 0)		terror("sfgetr failed1\n");	if(sfstdin->_endb > sfstdin->_next)		terror("sfgetr reads too much1\n");	if(strcmp(sfgetr(sfstdin,'\n',1),"222") != 0)		terror("sfgetr failed2\n");	if(sfstdin->_endb > sfstdin->_next)		terror("sfgetr reads too much2\n");	TSTEXIT(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -