tstkpk.c

来自「su 的源代码库」· C语言 代码 · 共 47 行

C
47
字号
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       */#include	"sftest.h"MAIN(){	Sfio_t*	f;	char		buf[1024];	char*		s;	int		fd[2];	close(0);	if(pipe(fd) < 0 || fd[0] != 0)		terror("Making pipe\n");	strcpy(buf,"1234567890");	if(!(f = sfopen(NIL(Sfio_t*),buf,"s")))		terror("Opening string stream\n");	if(!sfstack(f,sfstdin))		terror("Stacking\n");	if(write(fd[1],"ab",2) != 2)		terror("Writing ab to pipe\n");	if(!(s = sfreserve(f,SF_UNBOUND,1)) || sfvalue(f) != 2)		terror("Peeking size1 = %d but should be 2\n", sfvalue(f));	sfread(f,s,0);	if(strncmp(s,"ab",2) != 0)		terror("Wrong data1\n");	if(write(fd[1],"cd",2) != 2)		terror("Writing cd to pipe\n");	close(fd[1]);	if(!(s = sfreserve(f,4,0)) )		terror("Peeking size2 = %d but should be 4\n", sfvalue(f));	if(strncmp(s,"abcd",4) != 0)		terror("Wrong data2\n");	if(!(s = sfreserve(f,10,0)) )		terror("Peeking size3 = %d but should be 10\n", sfvalue(f));	if(strncmp(s,"1234567890",10) != 0)		terror("Wrong data3\n");	TSTEXIT(0);}

⌨️ 快捷键说明

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