%
將字元推送回資料流,而無需鎖定。
語法
int _ungetc_nolock(
int c,
FILE *stream
);
wint_t _ungetwc_nolock(
wint_t c,
FILE *stream
);
參數
c
要推送的字元。
stream
FILE
結構的指標。
傳回值
如果成功,這些函式都會傳回字元引數 c
。 如果無法回推 c
或是未讀取到任何字元,則輸入資料流不會變更,且 _ungetc_nolock
會傳回 EOF
;_ungetwc_nolock
會傳回 WEOF
。 如果 stream
是 NULL
,則會傳回 EOF
或 WEOF
,且 errno
會設定為 EINVAL
。
如需這些錯誤碼及其他錯誤碼的相關資訊,請參閱:errno
、_doserrno
、_sys_errlist
以及 _sys_nerr
。
備註
這些函式為 ungetc
和 ungetwc
的非鎖定版本。 具有 _nolock
尾碼的版本完全一致,不同之處在於不受保護,不能免於其他執行緒的干擾。 因為它們不會造成鎖定其他執行緒的額外負荷,所以可能會比較快。 這些函式只能用在安全執行緒內容 (例如單一執行緒應用程式) 或呼叫範圍已經處理執行緒隔離的地方。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
一般文字常式對應
TCHAR.H 常式 | _UNICODE 和 _MBCS 未定義 |
_MBCS 已定義 |
_UNICODE 已定義 |
---|---|---|---|
_ungettc_nolock |
_ungetc_nolock |
_ungetc_nolock |
_ungetwc_nolock |
需求
常式 | 必要的標頭 |
---|---|
_ungetc_nolock |
<stdio.h> |
_ungetwc_nolock |
<stdio.h> 或 <wchar.h> |
如需相容性詳細資訊,請參閱相容性。