--- description: "Learn more about: _commit" title: "_commit" ms.date: "4/2/2020" api_name: ["_commit", "_o__commit"] api_location: ["msvcrt.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr100_clr0400.dll", "msvcr110.dll", "msvcr110_clr0400.dll", "msvcr120.dll", "msvcr120_clr0400.dll", "ucrtbase.dll", "api-ms-win-crt-stdio-l1-1-0.dll", "api-ms-win-crt-private-l1-1-0.dll"] api_type: ["DLLExport"] topic_type: ["apiref"] f1_keywords: ["_commit", "commit"] helpviewer_keywords: ["files [C++], flushing", "flushing files to disk", "commit function", "_commit function", "committing files to disk"] ms.assetid: d0c74d3a-4f2d-4fb0-b140-2d687db3d233 --- # _commit Flushes a file directly to disk. ## Syntax ```C int _commit( int fd ); ``` ### Parameters *fd*
File descriptor referring to the open file. ## Return Value **_commit** returns 0 if the file was successfully flushed to disk. A return value of -1 indicates an error. ## Remarks The **_commit** function forces the operating system to write the file associated with *fd* to disk. This call ensures that the specified file is flushed immediately, not at the operating system's discretion. If *fd* is an invalid file descriptor, the invalid parameter handler is invoked, as described in [Parameter Validation](../../c-runtime-library/parameter-validation.md). If execution is allowed to continue, the function returns -1 and **errno** is set to **EBADF**. By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md). ## Requirements |Routine|Required header|Optional headers| |-------------|---------------------|----------------------| |**_commit**|\|\| For more compatibility information, see [Compatibility](../../c-runtime-library/compatibility.md). ## See also [Low-Level I/O](../../c-runtime-library/low-level-i-o.md)
[_creat, _wcreat](creat-wcreat.md)
[_open, _wopen](open-wopen.md)
[_read](read.md)
[_write](write.md)