📄 sfextern.c
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved. */#include "sfhdr.h"/* External variables and functions used only by Sfio** Written by Kiem-Phong Vo*//* code to initialize mutexes */static Vtmutex_t Sfmutex;static Vtonce_t Sfonce = VTONCE_INITDATA;static void _sfoncef(){ (void)vtmtxopen(_Sfmutex, VT_INIT); (void)vtmtxopen(&_Sfpool.mutex, VT_INIT); (void)vtmtxopen(sfstdin->mutex, VT_INIT); (void)vtmtxopen(sfstdout->mutex, VT_INIT); (void)vtmtxopen(sfstderr->mutex, VT_INIT); _Sfdone = 1;}/* global variables used internally to the package */Sfextern_t _Sfextern ={ 0, /* _Sfpage */ { NIL(Sfpool_t*), 0, 0, 0, NIL(Sfio_t**) }, /* _Sfpool */ NIL(int(*)_ARG_((Sfio_t*,int))), /* _Sfpmove */ NIL(Sfio_t*(*)_ARG_((Sfio_t*, Sfio_t*))), /* _Sfstack */ NIL(void(*)_ARG_((Sfio_t*, int, int))), /* _Sfnotify */ NIL(int(*)_ARG_((Sfio_t*))), /* _Sfstdsync */ { NIL(Sfread_f), /* _Sfudisc */ NIL(Sfwrite_f), NIL(Sfseek_f), NIL(Sfexcept_f), NIL(Sfdisc_t*) }, NIL(void(*)_ARG_((void)) ), /* _Sfcleanup */ 0, /* _Sfexiting */ 0, /* _Sfdone */ &Sfonce, /* _Sfonce */ _sfoncef, /* _Sfoncef */ &Sfmutex /* _Sfmutex */};/* accessible to application code for a few fast macro functions */ssize_t _Sfi = -1;#if vt_threadedstatic Vtmutex_t _Sfmtxin, _Sfmtxout, _Sfmtxerr;#define SFMTXIN (&_Sfmtxin)#define SFMTXOUT (&_Sfmtxout)#define SFMTXERR (&_Sfmtxerr)#else#define SFMTXIN (0)#define SFMTXOUT (0)#define SFMTXERR (0)#endifSfio_t _Sfstdin = SFNEW(NIL(char*),-1,0, (SF_READ |SF_STATIC|SF_MTSAFE),NIL(Sfdisc_t*),SFMTXIN);Sfio_t _Sfstdout = SFNEW(NIL(char*),-1,1, (SF_WRITE|SF_STATIC|SF_MTSAFE),NIL(Sfdisc_t*),SFMTXOUT);Sfio_t _Sfstderr = SFNEW(NIL(char*),-1,2, (SF_WRITE|SF_STATIC|SF_MTSAFE),NIL(Sfdisc_t*),SFMTXERR);#undef sfstdin#undef sfstdout#undef sfstderrSfio_t* sfstdin = &_Sfstdin;Sfio_t* sfstdout = &_Sfstdout;Sfio_t* sfstderr = &_Sfstderr;__EXTERN__(ssize_t,_Sfi);__EXTERN__(Sfio_t,_Sfstdin);__EXTERN__(Sfio_t,_Sfstdout);__EXTERN__(Sfio_t,_Sfstderr);__EXTERN__(Sfio_t*,sfstdin);__EXTERN__(Sfio_t*,sfstdout);__EXTERN__(Sfio_t*,sfstderr);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -