# Close > Close a file descriptor.
## Usage ```javascript var close = require( '@stdlib/fs/close' ); ``` #### close( fd, clbk ) Asynchronously closes a file descriptor, so that the file descriptor no longer refers to any file and may be reused. ```javascript var openSync = require( '@stdlib/fs/open' ).sync; var fd = openSync( __filename ); close( fd, done ); function done( error ) { if ( error ) { throw error; } } ``` #### close.sync( fd ) Synchronously closes a file descriptor. ```javascript var openSync = require( '@stdlib/fs/open' ).sync; var fd = openSync( __filename ); var err = close.sync( fd ); if ( err instanceof Error ) { throw err; } ```
## Notes - The difference between this API and [`fs.closSync()`][node-fs] is that [`fs.closeSync()`][node-fs] will throw if an `error` is encountered (e.g., if given an invalid file descriptor) and this API will return an `error`.
## Examples ```javascript var join = require( 'path' ).join; var openSync = require( '@stdlib/fs/open' ).sync; var close = require( '@stdlib/fs/close' ); var err; var fd; /* Sync */ fd = openSync( join( __dirname, 'package.json' ), 'r+' ); if ( fd instanceof Error ) { console.error( fd.message ); } else { err = close.sync( fd ); // returns undefined if ( err instanceof Error ) { console.error( err.message ); } else { console.log( 'Synchronously closed file descriptor.' ); } } /* Async */ fd = openSync( join( __dirname, 'package.json' ), 'r+' ); if ( fd instanceof Error ) { console.error( fd.message ); } else { close( fd, done ); } function done( error ) { if ( error ) { console.error( error.message ); } else { console.log( 'Asynchronously closed file descriptor.' ); } } ```