No Node.js, o “ descritor de arquivo ”É simplesmente um índice inteiro não negativo na tabela do descritor de arquivo. A tabela do descritor de arquivo é uma matriz dentro do “ PCB (Bloco de Controle de Processo) ”que mantém os registros de todos os processos de um sistema operacional. Ele atua como referência de um arquivo aberto que é usado para identificar ou acessar facilmente um arquivo aberto em um sistema operacional. Assim que o arquivo aberto for acessado através do “ descritor de arquivo ”então o usuário pode realizar a operação desejada nele de acordo com os requisitos.
Este artigo mostrará como o usuário pode interagir com os descritores de arquivo em Node.js.
Como interagir com descritores de arquivo em Node.js?
O usuário pode interagir com os descritores de arquivos de forma a recuperá-los com a ajuda dos métodos predefinidos abaixo indicados do “ fs ”módulo:
- Use “fs.open()” para obter um descritor de arquivo
- Use “fs.openSync()” para obter um descritor de arquivo
- Use “fsPromise.open()” para obter um descritor de arquivo
Vamos elaborar esses métodos um por um.
Método 1: use “fs.open()” para obter um descritor de arquivo
O ' fs.open ()” é o método mais comumente usado do “ fs ”Módulo que abre o arquivo de forma assíncrona para realizar diversas operações como leitura, gravação, renomeação, atualização e exclusão. Além disso, também retorna um “ descritor de arquivo ”Depois de realizar a operação definida no arquivo aberto por meio da função de retorno de chamada.
Sintaxe
A sintaxe básica do “ fs.open ()” o método está escrito abaixo:
fs. abrir ( nome do arquivo , bandeiras , modo , ligar de volta )De acordo com a sintaxe declarada acima, o “ fs.open ()” suporta os seguintes parâmetros:
- nome do arquivo : especifica o nome e também o caminho do arquivo específico que o usuário deseja abrir.
- bandeiras : denota as operações que serão realizadas no arquivo aberto. Seu valor padrão é “r(read)” por padrão.
- modo : Indica as permissões do arquivo que é “ 0o666 (legível e gravável) ' por padrão.
- ligar de volta : É executado após a conclusão do “ fs.open ()” método. Apoia o “ errar ”parâmetro que gera um erro se ocorrer durante a execução do método e o 'dados' parâmetro que retorna o “ fd(descritor de arquivo) ”Para acessar o arquivo aberto.
Valor de retorno: O ' fs.open() ”fornece um descritor de arquivo como valor retornado.
Diferentes sinalizadores disponíveis usados junto com descritores de arquivo em Node.js
Todos os tipos de bandeiras que o “ fs.open() ”Os suportes do método para executar as operações desejadas no arquivo aberto estão listados abaixo:
Bandeiras | Descrição |
---|---|
Em | É utilizado para escrever o conteúdo em um arquivo aberto, sem apresentá-lo será criado um novo arquivo. |
c+ | É usado para abrir o arquivo para realizar operações de leitura e gravação nele. |
wx | Funciona da mesma forma que “ Em ”. Entretanto, ele não cria o arquivo especificado se ele não estiver presente no sistema de arquivos. |
wx+ | É o mesmo que “ c+ ”No entanto, ele falhará se o arquivo não existir. |
R | Ele abre o arquivo para lê-lo e também cria um novo arquivo se ele não estiver presente. |
r+ | Ele abre o arquivo em modo legível e gravável. |
rs+ | Ele abre um arquivo de forma síncrona para realizar as tarefas de leitura e escrita nele. |
a | Ele abre o arquivo para anexar seu conteúdo. |
um+ | Ele abre o arquivo para leitura e acréscimo de seu conteúdo. |
machado | É o mesmo que “ a ” mas não cria um novo arquivo se não for recente no sistema de arquivos. |
machado+ | Funciona da mesma forma que “ um+ ”No entanto, não cria um novo arquivo. |
Depois de obter o básico do “ fs.open ()”, vamos prosseguir para sua implementação prática para obter o descritor de arquivo.
Exemplo: aplicando o método “fs.open()” para obter o descritor de arquivo com sinalizador padrão
Este exemplo mostra aplica o “fs.abrir()” método para abrir o arquivo especificado para leitura e retornar o descritor de arquivo:
const fs = exigir ( 'fs' ) ;era resolução = fs. abrir ( 'arquivo.txt' , 'r' , função ( errar , fd ) {
se ( errar ) {
console. erro ( errar ) ;
} outro {
console. registro ( 'Arquivo aberto!' ) ;
console. registro ( fd ) ; }
} ) ;
A explicação do bloco de código acima é a seguinte:
- Em primeiro lugar, o “ exigir ()” importa o método “ fs (sistema de arquivos) ”módulo.
- A seguir, o “ fs.open ()” método especifica o nome da pasta desejada, sinalizador padrão “ R ”, e uma função de retorno de chamada como primeiro, segundo e terceiro argumentos, respectivamente. A função de retorno de chamada passa ainda o “ errar ' e a ' fd ” argumentos. Este método abre o arquivo especificado para leitura e, em seguida, executa a função de retorno de chamada fornecida.
- Na definição da função de retorno de chamada, um “ se ”A instrução usa o“ console.error() ”Método para exibir a mensagem de erro que ocorre ao abrir o arquivo especificado.
- Se nenhum erro ocorrer, então o “ outro ” será executada a instrução que utiliza o “ console.log ()” para exibir a mensagem de verificação e o “descritor de arquivo” indicado por “ fd ”Argumento.
Saída
Agora, realiza a execução para conter “ aplicativo .js” por meio de:
aplicativo de nó. jsA saída abaixo mostra que o arquivo está aberto para leitura e também retorna o descritor do arquivo:
Método 2: Use “fs.openSync()” para obter um descritor de arquivo
O ' fs.openSync ()” é o método pré-definido do “ fs ”Módulo que abre o arquivo de forma síncrona para realizar operações comuns: como ler, escrever, renomear, atualizar e excluí-lo. Junto com sua funcionalidade básica, este método retorna um “ descritor de arquivo ”Diretamente em vez de invocar a função de retorno de chamada como no“ fs.open ()” método.
Sintaxe
fs. openSync ( caminho , bandeiras , modo )Os parâmetros usados acima “ fs.openSync() ”O método é explicado abaixo:
- caminho : especifica o nome e o caminho do arquivo específico na forma de uma string, URL ou buffer.
- bandeiras : denota a string ou valor numérico que especifica as operações que serão executadas no arquivo aberto. Seu valor padrão é “r(read)” por padrão.
- modo : Denota as permissões do arquivo que é “ 0o666 (legível e gravável) ' por padrão.
Valor de retorno: O ' fs.openSync() ”Fornece um número inteiro como valor retornado que denota o descritor de arquivo.
Siga nosso guia detalhado sobre “ Método fs.openSync() ”Para implementação prática.
Método 3: use “fsPromise.open()” para obter um descritor de arquivo
O ' fsPromises.open() ”É o método predefinido do“ fs ”Módulo que abre o arquivo de forma assíncrona como uma promessa e retorna um“ descritor de arquivo ”. Se a promessa for resolvida, ele verifica se a pasta especificada está aberta, caso contrário, será rejeitada com um objeto de erro.
Sintaxe
fsPromessas. abrir ( nome do arquivo , bandeiras , modo )O ' fsPromises.open ()” funciona nos três parâmetros a seguir:
- nome do arquivo : informa o nome do arquivo específico e o caminho na forma de uma string, URL ou buffer que o usuário deseja ler por padrão.
- bandeiras : pode ser uma string ou um valor inteiro não negativo que especifica as operações a serem executadas no arquivo aberto. Seu valor padrão é “r(read)” por padrão.
- modo : especifica as permissões do arquivo que são “ 0o666 (legível e gravável) ' por padrão.
Valor de retorno: Dá um “ promessa ”Como um valor retornado de“ fsPromises.open ()” método.
Siga nosso guia detalhado sobre “ Método fsPromises.open() ”Para implementação prática.
Quais operações diferentes podem ser realizadas com descritores de arquivo em Node.js?
Depois que o descritor de arquivo é recuperado, o usuário pode usá-lo para acessar aquele arquivo específico para realizar diferentes operações nele, como abrir, fechar, ler, escrever e muito mais. Para realizar essas operações específicas, siga nosso guia detalhado em “ Módulo do sistema de arquivos ”.
Trata-se de interagir com os descritores de arquivo no Node.js.
Conclusão
Para interagir com os descritores de arquivo, use o “ fs.open()”, “fs.openSync() ', ou o ' fsPromises.open() ”Método em Node.js. Todos esses métodos abrem o arquivo para realizar diferentes operações nele especificadas por meio do “ bandeira ”E também retornar o“ descritor de arquivo ” que é a referência do arquivo aberto. Este artigo elaborou como interagir com os descritores de arquivo em Node.js.