@@ -3555,6 +3555,37 @@ number of bytes read is zero.
3555
3555
If this method is invoked as its [` util .promisify ()` ][]ed version, it returns
3556
3556
a promise for an ` Object ` with ` bytesRead` and ` buffer` properties.
3557
3557
3558
+ The ` fs .read ()` method reads data from the file specified
3559
+ by the file descriptor (` fd` ).
3560
+ The ` length` argument indicates the maximum number
3561
+ of bytes that Node.js
3562
+ will attempt to read from the kernel.
3563
+ However, the actual number of bytes read (` bytesRead` ) can be lower
3564
+ than the specified ` length` for various reasons.
3565
+
3566
+ For example:
3567
+
3568
+ * If the file is shorter than the specified ` length` , ` bytesRead`
3569
+ will be set to the actual number of bytes read.
3570
+ * If the file encounters EOF (End of File) before the buffer could
3571
+ be filled, Node.js will read all available bytes until EOF is encountered,
3572
+ and the ` bytesRead` parameter in the callback will indicate
3573
+ the actual number of bytes read, which may be less than the specified ` length` .
3574
+ * If the file is on a slow network ` filesystem`
3575
+ or encounters any other issue during reading,
3576
+ ` bytesRead` can be lower than the specified ` length` .
3577
+
3578
+ Therefore, when using ` fs .read ()` , it's important to
3579
+ check the ` bytesRead` value to
3580
+ determine how many bytes were actually read from the file.
3581
+ Depending on your application
3582
+ logic, you may need to handle cases where ` bytesRead`
3583
+ is lower than the specified ` length` ,
3584
+ such as by wrapping the read call in a loop if you require
3585
+ a minimum amount of bytes.
3586
+
3587
+ This behavior is similar to the POSIX ` preadv2` function.
3588
+
3558
3589
### ` fs .read (fd[, options], callback)`
3559
3590
3560
3591
<!-- YAML
0 commit comments