#include Node::Node(FILE f) { fd = f; int i = libc::statf(f, &info); valid = (i == 0); } Node::Node(char* filename, int mode) { fd = libc::open(filename, mode); if (fd < 0) { valid = false; } else { int i = libc::statf(fd, &info); valid = (i == 0); if (!valid) libc::close(fd); } } void Node::close() { if (valid) libc::close(fd); valid = false; }