[libc-commits] [libc] [libc] Support _IONBF buffering for read_unlocked (PR #120677)
Nick Desaulniers via libc-commits
libc-commits at lists.llvm.org
Tue Jan 7 10:40:48 PST 2025
================
@@ -245,6 +266,26 @@ FileIOResult File::read_unlocked(void *data, size_t len) {
return {transfer_size + available_data, result.error};
}
+FileIOResult File::read_unlocked_nbf(uint8_t *data, size_t len) {
+ // Check whether there is a character in the ungetc buffer.
+ size_t available_data = copy_data_from_buf(data, len);
+ if (available_data == len)
+ return available_data;
+
+ // Directly copy the data into |data|.
+ cpp::span<uint8_t> dataref(static_cast<uint8_t *>(data) + available_data,
+ len - available_data);
+ auto result = platform_read(this, dataref.data(), dataref.size());
----------------
nickdesaulniers wrote:
I know the existing code already uses `auto`, but can we just use `FileIOResult`?
https://github.com/llvm/llvm-project/pull/120677
More information about the libc-commits
mailing list