Close
Close a file descriptor.
Usage
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.
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.
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()
is thatfs.closeSync()
will throw if anerror
is encountered (e.g., if given an invalid file descriptor) and this API will return anerror
.
Examples
var join = require( 'path' ).join;
var openSync = require( '@stdlib/fs/open' ).sync;
var close = require( '@stdlib/fs/close' );
var err;
/* Sync */
var 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.' );
}
}