Função Fstat em C

Funcao Fstat Em C



A função fstat() chama o sistema para retornar as informações (sobre algum arquivo) que dependem do descritor desse arquivo. Esta função obtém a informação para o arquivo que está associado ao descritor de arquivo também conhecido como “fildes” e então escreve esta informação no local de memória para onde o buffer está apontando. O tipo de retorno desta função é um inteiro. Retorna o valor “0” se o programa for executado com sucesso. Caso contrário, retorna um “-1” para a função em caso de falha na execução. O erro de execução para esta função pode ser devido a alguns motivos específicos como se os fildes da função possuem um descritor inválido para o arquivo, se o erro de leitura de entrada e saída ocorre a partir do arquivo, e se a localização da memória (estrutura) onde o buffer está apontando para gravar as informações do arquivo não tem memória alocada suficiente para o tamanho do arquivo.

Procedimento

Este artigo segue a ordem sequencial para implementar a função fstat() para obter as informações do arquivo. Primeiro aprendemos a sintaxe para esta função, os parâmetros necessários para esta função. Em seguida, usamos essa sintaxe para executar alguns exemplos para a função fstat().







Sintaxe

O método para declarar a função fstat() que permite o acesso do programa às informações do arquivo é mencionado na linha a seguir:



$ #include
$ int Estado ( int fildes , estrutura Estado * bufão ) ;

Sempre que temos que chamar a função em nosso programa, temos que importar primeiro os arquivos de cabeçalho que suportam esta função como “sys/stat.h”. O tipo de retorno para a função é sempre “int” e o parâmetro inclui “fildes” com o tipo de dados “int”. Fildes é um descritor para o arquivo sobre o qual queremos saber as informações. Outro parâmetro que é dado à função é o ponteiro “buf”. É um ponteiro “struct stat” que aponta para a estrutura onde queremos armazenar os dados sobre o arquivo. Esta é uma breve descrição dos parâmetros de entrada para a função fstat().



Exemplo

Usamos a descrição mencionada anteriormente e executamos um programa para obter as informações sobre qualquer arquivo específico através do nosso programa. Escrevemos este programa no compilador Microsoft Visual Studio C para a execução. Começamos com o exemplo criando um projeto primeiro e depois adicionando-o aos repositórios C no Visual Studio. Para adicionar o projeto aos arquivos C, incluímos o “.c” com o nome do projeto e o adicionamos ao arquivo fonte do projeto. O próximo passo após a criação do projeto é chamar todas as bibliotecas necessárias para as funções que podemos usar posteriormente no programa. Como estamos implementando o exemplo para a função fstat() neste artigo, temos que incluir o arquivo de cabeçalho “sys/stat.h”. Para obter as informações do arquivo, precisamos saber o tipo de dispositivo em que o arquivo existe. Para conhecer o tipo de dados do dispositivo, incluímos o cabeçalho “type. h” no programa.





As informações do arquivo devem incluir a hora em que o arquivo foi aberto pela última vez e a modificação que foi feita nele. Para acessar essas funções de chamada de tempo, adicionamos o arquivo de cabeçalho “times. h” e o “fcntl. h” para as funções de permissão de arquivo. O último cabeçalho “stdio. h” também está incluído no programa para chamar os métodos printf() e scanf() no programa. Os arquivos de cabeçalho que discutimos para serem incluídos no programa são os seguintes:

$ #include
$ #include
$ #include
$ #include
$ #include

Depois que os arquivos de cabeçalho mencionados anteriormente são importados com sucesso para o programa, agora construímos o programa para obter as informações sobre um arquivo específico. Declaramos a função com o tipo de retorno como “int” com o nome “main”. Nesta função principal, declaramos um array “char” e atribuímos a ele o nome do arquivo para o qual precisamos saber uma informação. Em seguida, definimos uma “informação de status” com o tipo de dados “struct”. Essa estrutura é um local onde armazenamos as informações sobre o arquivo.



Em seguida, definimos outra variável com o nome “file_descriptor” com o tipo de dados como “integer”. Na condição “if”, pedimos permissão para as operações de leitura e escrita do arquivo caso ele exista, passando o “S_IWUSR” e o nome do array para a função “create()” que solicita as permissões para o arquivo if ele existe ou crie um novo arquivo caso contrário. Passamos esta função create() para a “condição if” que indica se o valor da função create() for menor que zero, então cria um erro de que o arquivo precisa ser criado. Se o fstat() com parâmetros como “file_descriptor” e “informações” e “o endereço do local onde as informações do arquivo estão armazenadas” não for igual a zero, mostramos o valor retornado de fstat() que é a informação do arquivo . E imprimimos as informações na forma de atributos, por exemplo. id do dispositivo em que o arquivo está armazenado, o número do Inode do dispositivo, o modo de proteção do arquivo, o id do usuário, o id do grupo e o número do link (formato físico).

Depois de exibir esses atributos, saímos das instruções e fechamos o arquivo usando o método close(). Em seguida, desvincule o arquivo chamando o método unlink().

#include
#include
#include
#include
#include

a Principal ( ) {
Caracteres variedade [ ] = 'amp.file' ;
estrutura informações estatísticas ;
int descritor de arquivo ;
E se ( ( descritor de arquivo = feito ( variedade , S_IWUSR ) ) < 0 )
erro ( erro 'creat()' ) ;
senão {
E se ( Estado ( descritor de arquivo , & em formação ) != 0 )
erro ( 'erro fstat()' ) ;
senão {
coloca ( 'valores fstat():' ) ;
printf ( ' inode: %d \n ' , ( int ) informações. st_ino ) ;
printf ( ' device_id: %d \n ' , ( int ) informações. st_dev ) ;
printf ( ' modo do dispositivo: %08x \n ' , informações. st_mode ) ;
printf ( ' no_of_hard_links: %d \n ' , informações. st_nlink ) ;
printf ( ' u_id: %d \n ' , ( int ) informações. st_uid ) ;
printf ( ' g_id: %d \n ' , ( int ) informações. st_gid ) ;
}
perto ( descritor de arquivo ) ;
desvincular ( variedade ) ;
}
}

O programa primeiro acessará a permissão para a operação do arquivo e, em seguida, lerá os dados nele e os gravará no local de memória alocado. Os atributos que demos ao programa para exibir a partir do arquivo são mostrados na saída.

Conclusão

Usamos a função fstat() para acessar as informações do arquivo. Primeiro aprendemos a sintaxe da função fstat() explicada com a descrição completa dos parâmetros da função. Em seguida, escrevemos um programa para essa função, onde primeiro acessamos a permissão do proprietário do arquivo e, em seguida, lemos o arquivo e exibimos os atributos que queríamos das informações do arquivo. Nós tentamos o nosso melhor para que você entenda o conceito de fstat() e esperamos que isso o ajude em seus programas.