msvcrt --- 來自 MS VC++ 運行時的有用例程?
這些函數(shù)提供了對 Windows 平臺上一些有用功能的訪問。一些更高級別的模塊使用這些函數(shù)來構建其服務的 Windows 實現(xiàn)。 例如, getpass 模塊在實現(xiàn) getpass() 函數(shù)時使用了這些函數(shù)。
關于這些函數(shù)的更多信息可以在平臺 API 文檔中找到。
該模塊實現(xiàn)了控制臺 I/O API 的普通和寬字符變體。普通的 API 只處理ASCII字符,國際化應用受限。應該盡可能地使用寬字符 API 。
文件操作?
-
msvcrt.locking(fd, mode, nbytes)? 基于文件描述符 fd 從 C 運行時鎖定文件的某一部分。 失敗時引發(fā)
OSError。 鎖定的文件區(qū)域從當前文件位置開始擴展 nbytes 個字節(jié),并可能持續(xù)到超出文件末尾。 mode 必須為下面列出的LK_*之一。 一個文件中的多個區(qū)域可以被同時鎖定,但是不能重疊。 相鄰區(qū)域不會被合并;它們必須單獨被解鎖。
-
msvcrt.LK_LOCK? -
msvcrt.LK_RLCK? 鎖定指定的字節(jié)數(shù)據(jù)。 如果字節(jié)數(shù)據(jù)無法被鎖定,程序會在 1 秒之后立即重試。 如果在 10 次嘗試后字節(jié)數(shù)據(jù)仍無法被鎖定,則會引發(fā)
OSError。
-
msvcrt.LK_NBLCK? -
msvcrt.LK_NBRLCK? 鎖定指定的字節(jié)數(shù)據(jù)。 如果字節(jié)數(shù)據(jù)無法被鎖定,則會引發(fā)
OSError。
-
msvcrt.LK_UNLCK? 解鎖指定的字節(jié)數(shù)據(jù),該對象必須在之前被鎖定。
-
msvcrt.setmode(fd, flags)? 設置文件描述符 fd 的行結(jié)束符轉(zhuǎn)寫模式。 要將其設為文本模式,則 flags 應當為
os.O_TEXT;設為二進制模式,則應當為os.O_BINARY。
-
msvcrt.open_osfhandle(handle, flags)? 基于文件句柄 handle 創(chuàng)建一個 C 運行時文件描述符。 flags 形參應當
os.O_APPEND,os.O_RDONLY和os.O_TEXT按位 OR 的結(jié)果。 返回的文件描述符可以被用作os.fdopen()的形參以創(chuàng)建一個文件對象。
