fcloseall.c

来自「用于嵌入式Linux系统的标准C的库函数」· C语言 代码 · 共 89 行

C
89
字号
/*FUNCTION<<fcloseall>>---close all filesINDEX	fcloseallINDEX	_fcloseall_rANSI_SYNOPSIS	#include <stdio.h>	int fcloseall(void);	int _fcloseall_r (struct _reent *<[ptr]>);TRAD_SYNOPSIS	#include <stdio.h>	int fcloseall()	int _fcloseall_r (<[ptr]>)	struct _reent *<[ptr]>;DESCRIPTION<<fcloseall>> closes all files in the current reentrancy struct's domain.The function <<_fcloseall_r>> is the same function, except the reentrancystruct is passed in as the <[ptr]> argument.This function is not recommended as it closes all streams, includingthe std streams.RETURNS<<fclose>> returns <<0>> if all closes are successful.  Otherwise,EOF is returned.PORTABILITY<<fcloseall>> is a glibc extension.Required OS subroutines: <<close>>, <<fstat>>, <<isatty>>, <<lseek>>,<<read>>, <<sbrk>>, <<write>>.*//* This file based upon fwalk.c. *//* * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Berkeley.  The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */#include <stdio.h>#include <stdlib.h>#include <errno.h>#include "local.h"int_fcloseall_r (ptr)     struct _reent *ptr;{  register FILE *fp;  register int n, ret = 0;  register struct _glue *g;  for (g = &ptr->__sglue; g != NULL; g = g->_next)    for (fp = g->_iobs, n = g->_niobs; --n >= 0; fp++)      if (fp->_flags != 0)        ret |= fclose (fp);  return ret;}#ifndef _REENT_ONLYintfcloseall (void){  return _fcloseall_r (_GLOBAL_REENT);}#endif

⌨️ 快捷键说明

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