liblinux++

A hosted C++ runtime without any libc.
git clone git://henryandlizzy.uk/liblinux++
Log | Files | Refs

unix-listen.cpp (492B)


      1 #include "linux.hpp"
      2 
      3 int main(int argc, char* argv[], char* envp[])
      4 {
      5 	if (argc <= 2)
      6 		return 1;
      7 
      8 	(void)unlinkat(AT_FDCWD, argv[1], {});
      9 
     10 	file sock = *socket(1/*AF_UNIX*/, 1/*SOCK_STREAM*/, 0);
     11 	un_addr addr{span<char const>{argv[1], c_str{argv[1]}.length()}};
     12 	*bind(sock, addr);
     13 	*listen(sock, 1);
     14 	socklen_t addr_len = sizeof(addr);
     15 	file conn = *accept(sock, &addr, &addr_len);
     16 	*dup(conn, stdin);
     17 	*dup(conn, stdout);
     18 	*close(conn);
     19 	*close(sock);
     20 	*execve(argv[2], argv+2, envp);
     21 }