A estrutura fileinfo_t fornece informações sobre um arquivo. O arquivo ao qual uma E/S corresponde é apontado por args[2] nos testes start, done, wait-start e wait-done. A presença de informações do arquivo depende do sistema de arquivos fornecer essas informações ao distribuir solicitações de E/S. Alguns sistemas de arquivos, especialmente de terceiros, podem não fornecer essas informações. Além disso, solicitações de E/S podem surgir de um sistema de arquivos para o qual não existam informações do arquivo. Por exemplo, uma E/S para os metadados do sistema de arquivos não será associada a um arquivo. Finalmente, alguns sistemas de arquivos altamente otimizados podem agregar E/S de arquivos separados em uma única solicitação de E/S. Nesse caso, o sistema de arquivos pode fornecer as informações de arquivo seja para o arquivo que representa a maioria da E/S ou para o arquivo que representa uma parte da E/S. De forma alternativa, o sistema de arquivos pode não fornecer as informações de arquivo nesse caso.
A definição da estrutura fileinfo_t é a seguinte:
typedef struct fileinfo { string fi_name; /* name (basename of fi_pathname) */ string fi_dirname; /* directory (dirname of fi_pathname) */ string fi_pathname; /* full pathname */ offset_t fi_offset; /* offset within file */ string fi_fs; /* filesystem */ string fi_mount; /* mount point of file system */ } fileinfo_t;
O campo fi_name contém o nome do arquivo mas não inclui componentes do diretório. Se nenhuma informação do arquivo for associada a uma E/S, o campo fi_name será definido como a seqüência <none>. Em alguns casos raros, o nome de caminho associado a um arquivo pode ser desconhecido. Nesse caso, o campo fi_name será definido como a seqüência <unknown>.
O campo fi_dirname contém somente o componente de diretório do nome do arquivo. Assim como com fi_name, essa seqüência pode ser definida como <none> se nenhuma informação de arquivo estiver presente, ou <unknown> se o nome de caminho associado ao arquivo não for conhecido.
O campo fi_pathname contém o nome de caminho completo para o arquivo. Assim como com fi_name, essa seqüência pode ser definida como <none> se nenhuma informação de arquivo estiver presente, ou <unknown> se o nome de caminho associado ao arquivo não for conhecido.
O campo fi_offset contém o deslocamento no arquivo, ou -1 se a informação do arquivo não estiver presente ou se o deslocamento não estiver especificado pelo sistema de arquivos.