_fputc_nolock、_fputwc_nolock
寫入一個字元至資料流,而不用鎖定執行緒。
int _fputc_nolock(
int c,
FILE *stream
);
wint_t _fputwc_nolock(
wchar_t c,
FILE *stream
);
參數
c
待寫入字元。stream
FILE 結構的指標。
傳回值
這些函式都會傳回寫入的字元。 如需錯誤訊息,請參閱 fputc、fputwc 。
備註
_fputc_nolock 和 _fputwc_nolock 與 fputc 和 fputwc分別是相同的,但不會防止由其他執行緒的功能。 因為它們不會造成鎖定其他執行緒的額外負荷,所以可能會比較快。 這些函式只能用在安全執行緒內容 (例如單一執行緒應用程式) 或呼叫範圍已經處理執行緒隔離的地方。
如果資料流是以 ANSI 模式開啟,則這兩個函式的行為相同。 _fputc_nolock 目前不支援輸出到 UNICODE 資料流。
一般文字常式對應
Tchar.h 常式 |
未定義 _UNICODE and _MBCS |
已定義 _MBCS |
已定義 _UNICODE |
---|---|---|---|
_fputtc_nolock |
_fputc_nolock |
_fputc_nolock |
_fputwc_nolock |
需求
Function |
必要的標頭 |
---|---|
_fputc_nolock |
<stdio.h> |
_fputwc_nolock |
<stdio.h> 或 <wchar.h> |
Windows 市集 應用程式不支援主控台。 與主控台關聯的標準資料流控制代碼 (stdin、stdout 和 stderr) 必須重新導向,然後 C 執行階段函式才能在 Windows 市集 應用程式中使用它們。 如需相容性的詳細資訊,請參閱相容性。
範例
// crt_fputc_nolock.c
// This program uses _fputc_nolock
// to send a character array to stdout.
#include <stdio.h>
int main( void )
{
char strptr1[] = "This is a test of _fputc_nolock!!\n";
char *p;
// Print line to stream using fputc.
p = strptr1;
while( (*p != '\0') && _fputc_nolock( *(p++), stdout ) != EOF ) ;
}