Função fstat em c

Função fstat em c

A função fstat () chama o sistema para retornar as informações (sobre algum arquivo) que depende do descritor desse arquivo. Esta função obtém as informações para o arquivo associado ao descritor de arquivo, também conhecido como "Fildes" e depois escreve essas informações no local da memória onde o buffer está apontando para. O tipo de retorno desta função é um número inteiro. Ele retorna o valor "0" se o programa for executado com sucesso. Caso contrário, ele retorna um "-1" à função em caso de execução com falha. O erro de execução para esta função pode ser devido a alguns motivos específicos, como se as filas da função tiverem um descritor inválido para o arquivo, se o erro de leitura para entrada e saída ocorrer a partir do arquivo e se o local da memória (estrutura) onde O buffer está apontando para escrever a informação do arquivo não tem memória alocada o suficiente para o tamanho do arquivo.

Procedimento

Este artigo segue a ordem seqüencial 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 esta 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:

$#inclua
$ int fStat (int fildes, struct stat *buf);

Sempre que precisamos chamar a função em nosso programa, precisamos importar os arquivos de cabeçalho primeiro que suportam essa 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 que queremos saber as informações sobre. Outro parâmetro que é dado à função é o ponteiro "buf". É um ponteiro de "status de estrutura" 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 em perviedade e executamos um programa para obter as informações sobre qualquer arquivo / arquivo específico por meio de nosso programa. Escrevemos este programa no compilador do 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 adicione -o ao arquivo de origem 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 mais adiante no programa. Como estamos implementando o exemplo da função fstat () neste artigo, precisamos incluir o arquivo de cabeçalho “SYS/ STAT.H “. Para as informações do arquivo, precisamos saber o tipo de dispositivo onde o arquivo existe. Para conhecer o tipo de dados para o dispositivo, incluímos o cabeçalho “Tipo. H ”no programa.

As informações do arquivo devem incluir o tempo 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 ”Cabeçalho para as funções de permissão do arquivo. O último cabeçalho “stdio. O arquivo 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:

$#inclua
$#inclua
$#inclua
$#inclua
$#inclua

Depois que os arquivos de cabeçalho mencionados anteriormente são importados com sucesso para o programa, agora criamos 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 uma matriz "char" e atribuímos o nome do arquivo para o qual precisamos conhecer uma informação. Em seguida, definimos uma "informação estatística" com o tipo de dados "struct". Esta estrutura é um lugar 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 "número inteiro". Na “Condição se”, solicitamos permissão para as operações de leitura e gravação do arquivo, se ele existe, passando a função “S_IWUSR” e o nome da matriz para a função “create ()” que exige as permissões para o arquivo se se existe ou crie um novo arquivo, caso contrário. Passamos essa função create () para a “condição se” que afirma se o valor da função create () for menor que zero, então cria um erro que o arquivo precisa ser criado. Se o fstat () com parâmetros como "file_descriptor" e "informação" e "o endereço do local em que as informações do arquivo são armazenadas" não são iguais a zero, exibimos o valor retornado FSTAT () que é a informação do arquivo. E imprimimos as informações na forma de atributos, e.g. ID do dispositivo no qual o arquivo é armazenado, o número de 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 (formulário rígido).

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

#incluir
#incluir
#incluir
#incluir
#incluir
principal()
Char Array [] = "Amp.arquivo";
Informações estatísticas de estrutura;
int fileDescriptor;
if ((fileDescriptor = creat (array, s_iwusr)) < 0)
perror ("creat () erro");
outro
if (fstat (fileDescriptor, e informações) != 0)
perror ("fstat () error");
outro
puts ("fstat () valores:");
printf ("inode: %d \ n", (int) informações.st_ino);
printf ("device_id: %d \ n", (int) informações.st_dev);
printf ("Modo de dispositivo: %08x \ n", informação.st_mode);
printf ("no_of_hard_links: %d \ n", informação.st_nlink);
printf ("u_id: %d \ n", (int) informações.st_uid);
printf ("g_id: %d \ n", (int) informações.st_gid);

fechar (FileDescriptor);
desvincular (matriz);

O programa primeiro acessará a permissão para a operação do arquivo e depois lê os dados nele e o escreverá no local da memória alocada. Os atributos que demos ao programa para exibir do arquivo são mostrados na saída.

Conclusão

Usamos a função fstat () para acessar as informações do arquivo. Aprendemos pela primeira vez a sintaxe da função fstat () explicada com a descrição completa dos parâmetros da função. Em seguida, escrevemos um programa para esta função, onde acessamos a permissão do proprietário do nosso arquivo e depois lemos o arquivo e exibimos os atributos que queríamos das informações do arquivo. Tentamos o nosso melhor em deixar você entender o conceito de fstat () e esperamos que isso ajude você em seus programas.