44 lines
1.2 KiB
Zig
44 lines
1.2 KiB
Zig
const std = @import("std");
|
|
const net = std.net;
|
|
|
|
const send_fd = @import("./exchange-fd.zig").send_fd;
|
|
|
|
const print = std.debug.print;
|
|
|
|
fn disconnect(stream: net.Stream) void { stream.close(); }
|
|
|
|
fn connect(path: []const u8) !net.Stream {
|
|
return try net.connectUnixSocket(path);
|
|
}
|
|
|
|
fn add_line_in_file() !void {
|
|
var cwd = std.fs.cwd();
|
|
var f = try cwd.createFile("some-file.log", .{.read = true});
|
|
defer f.close();
|
|
|
|
var writer = f.writer();
|
|
try writer.print("hello\n", .{});
|
|
}
|
|
|
|
pub fn main() !u8 {
|
|
var path = "/tmp/TEST_EXCHANGE_FD";
|
|
|
|
print("Connection to {s}...\n", .{path});
|
|
var stream = try connect(path);
|
|
|
|
print("Connected! Opening a file...\n", .{});
|
|
var file = try std.fs.cwd().createFile("some-file.log", .{.read = true});
|
|
defer file.close();
|
|
|
|
print("File opened! Writing some data into it...\n", .{});
|
|
var writer = file.writer();
|
|
try writer.print("hello this is the first process\n", .{});
|
|
|
|
print("Data written! Sending its fd...\n", .{});
|
|
send_fd(stream.handle, "hello this is the payload", file.handle);
|
|
print("Sent fd! Disconnection...\n", .{});
|
|
disconnect(stream);
|
|
print("Disconnected!\n", .{});
|
|
return 0;
|
|
}
|