code wiki / (root) / _offc_argv_open.nx

_offc_argv_open.nx source

↩ module page · 31 lines · 726 B

1// _offc_argv_open.nx -- diagnostic for Wheeler DDC argv path bug. 2// Echoes argv[1], opens it, prints result. 3 4import "syscalls.nx" 5 6func main(argc: i64, argv: *i64) -> i64 { 7 if argc < 2 { 8 sys_write(1, "no_argv\n" as *u8, 8) 9 return 1 10 } 11 12 let path: *u8 = (argv[1]) as *u8 13 14 sys_write(1, "got: " as *u8, 5) 15 var k: i64 = 0 16 while path[k] != 0 { 17 k = k + 1 18 if k > 256 { return 2 } 19 } 20 sys_write(1, path, k) 21 sys_write(1, "\n" as *u8, 1) 22 23 let fd: i64 = sys_openat_rd(path) 24 if fd < 0 { 25 sys_write(1, "open_failed\n" as *u8, 12) 26 return 3 27 } 28 sys_write(1, "open_ok\n" as *u8, 8) 29 sys_close(fd) 30 return 0 31}