ref: b9d3ca5753cc1922236fc733605bc8b3caabc8c1
dir: /sys/src/libc/9sys/iounit.c/
#include <u.h>
#include <libc.h>
/*
 * Format:
  3 r  M    4 (0000000000457def 11 00)   8192      512 /rc/lib/rcmain
 */
int
iounit(int fd)
{
	int i, cfd;
	char buf[128], *args[10];
	snprint(buf, sizeof buf, "/fd/%dctl", fd);
	cfd = open(buf, OREAD|OCEXEC);
	if(cfd < 0)
		return 0;
	i = read(cfd, buf, sizeof buf-1);
	close(cfd);
	if(i <= 0)
		return 0;
	buf[i] = '\0';
	if(tokenize(buf, args, nelem(args)) != nelem(args))
		return 0;
	return atoi(args[7]);
}