writeFile
Function parameters
Parameters
- w:*Writer
- sub_path:[]const u8
- file_reader:*std.fs.File.Reader
- stat_mtime:i128
Options for writing file/dir/link.
Types
Sets prefix for all other write* method paths.
Functions
- setRoot
- Sets prefix for all other write* method paths.
- writeFileStream
- Writes file reading file content from `reader`.
- writeFileBytes
- Writes file using bytes buffer `content` for size and file content.
- finishPedantically
- According to the specification, tar should finish with two zero blocks, but
Error sets in this namespace
Error Sets
Source
Implementation
pub fn writeFile(
w: *Writer,
sub_path: []const u8,
file_reader: *std.fs.File.Reader,
stat_mtime: i128,
) WriteFileError!void {
const size = try file_reader.getSize();
const mtime: u64 = @intCast(@divFloor(stat_mtime, std.time.ns_per_s));
var header: Header = .{};
try w.setPath(&header, sub_path);
try header.setSize(size);
try header.setMtime(mtime);
try header.updateChecksum();
try w.underlying_writer.writeAll(@ptrCast((&header)[0..1]));
_ = try w.underlying_writer.sendFileAll(file_reader, .unlimited);
try w.writePadding64(size);
}