Chamada de sistema chdir do Linux em C

Chamada De Sistema Chdir Do Linux Em C



As alterações no diretório de trabalho atual de um dispositivo são feitas usando o método “CHDIR”. Em várias circunstâncias, você pode decidir alterar a pasta de trabalho atual do seu dispositivo. Ou você deseja executar um script C de uma pasta em vez de seu diretório de trabalho atual. Conseqüentemente, para executar esse código C específico, você deve modificar sua pasta de trabalho atual. Além disso, o método “getcwd” da linguagem de codificação C pode ser usado para determinar rapidamente quando a pasta de trabalho atual foi alterada. Agora, usaremos a função chdir() de C neste artigo para alterar um diretório de trabalho.

Exemplo 01:

Vamos começar com o funcionamento da função chdir() de C no sistema operacional Linux. Para isso, você deve ter certeza de que o compilador de C já está montado no seu final. Na maioria dos casos, tendemos a usar o compilador “gcc” de C em nosso sistema operacional Kali Linux. Para começar com este exemplo, devemos ter um arquivo C com a extensão “c”. Nós o nomeamos p1.c e tentamos abri-lo com o editor “nano” do Linux conforme apresentado abaixo.







Quando seu arquivo é aberto no editor, você precisa começar a codificar nele. Começamos nosso programa em C adicionando as principais bibliotecas de cabeçalho de C que são indispensáveis ​​em qualquer programa em C. Portanto, as bibliotecas de cabeçalho stdio.h e unistd.h são usadas para garantir que a entrada e a saída padrão possam fluir dentro do programa. O cabeçalho unistd.h foi usado para fazer uso de algumas funções padrão de C que são necessárias especialmente para este exemplo. Agora, iniciamos a função de driver main() de C neste código para ser executada automaticamente na execução. A variável de array do tipo de caractere “path” foi definida com um tamanho de 100 porque armazena apenas 100 valores.



A instrução da função printf() foi usada para simplesmente imprimir a pasta do diretório de trabalho atual deste arquivo C usando a função “getcwd()”. Esta função usa a variável de array “path” com um tamanho de 100 para obter o diretório de trabalho atual e passá-lo para a instrução de função printf() para exibição. Agora, é hora de usar a função chdir(). Podemos passar qualquer tipo de caractere para especificar se queremos avançar no diretório ou retroceder dentro do mesmo diretório.



Então, nós tentamos os caracteres “..” na instrução da função chdir() para mover do diretório de trabalho atual para trás, ou seja, um nível abaixo do diretório de trabalho atual. Observe que, neste momento, estamos trabalhando na pasta do projeto do nosso principal diretório de trabalho “Linux” do sistema Kali Linux. Agora, estamos no diretório “Linux” em vez do diretório “project” depois de usar a função “chdir”. Agora, tentamos a instrução de função “printf()” mais uma vez para exibir o diretório de trabalho atual usando a função “getcwd” nele. Nosso programa termina com a instrução return 0.





Depois de salvar este programa em C, precisamos compilá-lo usando o compilador “gcc” que já configuramos em nosso final. Usando esta instrução gcc, criamos um arquivo objeto deste arquivo C chamado “p1.out” usando a opção –o conforme mostrado abaixo.



Agora, quando você executar seu arquivo objeto em seu terminal Linux, você primeiro obterá o diretório de trabalho usado pelo programa antes do uso da função chdir(). Após o uso da função chdir(), passamos para o diretório abaixo e esse diretório específico “home” é exibido.

Exemplo 02:



Usando as mesmas bibliotecas de cabeçalho, iniciamos este código de programa. Dentro da função main() deste programa, usamos a instrução “if” utilizando a função chdir() nela.

Esta função verificará se o “/usuário” existe ou não no sistema configurando a condição “/usuário!=0”. Se o diretório não existir no sistema atual, a chamada da função perror será usada para exibir a respectiva mensagem de erro, ou seja, “diretório do usuário não existe. Estamos utilizando outra instrução “if” usando a função chdir() dentro dela. O propósito de usar a função chdir() aqui também é o mesmo que fizemos na instrução if acima, que é para verificar se o diretório existe ou não usando a condição “/temp”!=0. A única diferença é o uso de um novo nome de diretório “/temp” em vez de “/user” como você pode ver na imagem de código abaixo.







Se o diretório /temp não existir no sistema, a função perror usada na instrução “if” lançará uma mensagem de erro “/ o diretório temp não existe”, conforme exibido na imagem abaixo. Após o uso de ambas as instruções “if”, terminamos este código com a instrução return 0 do C. Agora, o programa acabou. Estamos salvando nosso código C usando o atalho Ctrl+S antes de sua execução.





Agora que o arquivo foi salvo em seu sistema, temos que compilar o código C com o compilador “gcc” que já montamos em nosso final. Usando esta instrução, criamos seu arquivo objeto “p2.out” usando a opção –o na instrução.





Após executar o arquivo objeto criado “p2.out” com os caracteres “./”, aprendemos que ambos os diretórios mencionados no caminho de “chdir” não existem no sistema ou o erro exibido no shell vem demonstrando isso corretamente.



Conclusão

Neste artigo de hoje, demonstramos o uso da função chdir() de C no sistema operacional Kali Linux. O primeiro exemplo ilustra como a função chdir() pode ser utilizada para alterar um diretório de trabalho, ou seja, mover de um diretório para outro. O último exemplo de C demonstra como podemos verificar se o diretório de trabalho atual especificado no caminho de chdir() existe ou não.