@@ -1052,6 +1052,7 @@ pub const TruncateError = error{
1052
1052
FileBusy ,
1053
1053
AccessDenied ,
1054
1054
PermissionDenied ,
1055
+ NonResizable ,
1055
1056
} || UnexpectedError ;
1056
1057
1057
1058
/// Length must be positive when treated as an i64.
@@ -1091,7 +1092,7 @@ pub fn ftruncate(fd: fd_t, length: u64) TruncateError!void {
1091
1092
.PERM = > return error .PermissionDenied ,
1092
1093
.TXTBSY = > return error .FileBusy ,
1093
1094
.BADF = > unreachable , // Handle not open for writing
1094
- .INVAL = > unreachable , // Handle not open for writing, negative length, or non-resizable handle
1095
+ .INVAL = > return error . NonResizable ,
1095
1096
.NOTCAPABLE = > return error .AccessDenied ,
1096
1097
else = > | err | return unexpectedErrno (err ),
1097
1098
}
@@ -1107,7 +1108,7 @@ pub fn ftruncate(fd: fd_t, length: u64) TruncateError!void {
1107
1108
.PERM = > return error .PermissionDenied ,
1108
1109
.TXTBSY = > return error .FileBusy ,
1109
1110
.BADF = > unreachable , // Handle not open for writing
1110
- .INVAL = > unreachable , // Handle not open for writing, negative length, or non-resizable handle
1111
+ .INVAL = > return error . NonResizable , // This is returned for /dev/null for example.
1111
1112
else = > | err | return unexpectedErrno (err ),
1112
1113
}
1113
1114
}
0 commit comments