mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 19:08:50 +00:00
23 lines
582 B
TypeScript
23 lines
582 B
TypeScript
import { dlopen, ptr } from "bun:ffi";
|
|
|
|
var lazyMkfifo;
|
|
export function mkfifo(path: string, permissions: number = 0o666): void {
|
|
if (!lazyMkfifo) {
|
|
const suffix = process.platform === "darwin" ? "dylib" : "so.6";
|
|
lazyMkfifo = dlopen(`libc.${suffix}`, {
|
|
mkfifo: {
|
|
args: ["ptr", "i32"],
|
|
returns: "i32",
|
|
},
|
|
}).symbols.mkfifo;
|
|
}
|
|
|
|
const buf = new Uint8Array(Buffer.byteLength(path) + 1);
|
|
new TextEncoder().encodeInto(path, buf);
|
|
const rc = lazyMkfifo(ptr(buf), permissions);
|
|
|
|
if (rc < 0) {
|
|
throw new Error(`mkfifo failed`);
|
|
}
|
|
}
|