func getGroupInfo(groupname: String) throws -> Group {
    // getgrnam(2) documentation says "If one wants to check errno after
    // the call, it should be set to zero before the call."
    errno = 0
    return try getgrnam(groupname)?.pointee ?! GroupInfoError.getError()