Ola, hoje vamos trabalhar com programas em C em conjunto com scripts. O objetivo e construir dois scripts, um para criar um arquivo e outro para deletar um arquivo. Esses dois scripts serao chamados pelo nosso programa escrito em c, que sera basicamente um MENU que ira usar o comando system para chamada dos scripts.Primeiro passo - Criacao dos scriptsNome: ArqExiste.shFuncionalidade: Ele e quem vai criar o arquivo de acordo com o nome fornecido pelo usuario.Codigo:#!/bin/bashif [ -a $1 ]then echo "O Arquivo ja Existe!!!" echo "Voce deseja criar um novo? (s/n)" read op if [ $op == "s" ] then rm -f $1; touch $1; fielse touch $1 echo "Arquivo criado!!!"fiNosso segundo scriptNome: DeletaArq.shFuncionalidade: Excluir o arquivoCodigo:#!/bin/bashif [ -a $1 ]then rm -f $1else echo "Arquivo nao Existe!!!" fiNa linha de comando voce deve fornecer permissao de execucao para esses arquivos, entao digitiechmod +x DeletaArq.shchmod +x ArqExiste.shBom, agora vamos ao nosso programa em c:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXOP 4int menuOpcoes(){ int op; //Armazena opcao seelecionada printf("\n\t*****************************\n"); printf("1 - Criar Arquivo;\n"); printf("2 - Listar Aqrquivos;\n"); printf("3 - Remover Arquivo;\n"); printf("Escolha sua opcao:\t"); scanf("%d",&op); return op;}int main(){ int ret; //Armazena valores de retorno de comandos int op; char str[50]; char buffer[256]; do { op = menuOpcoes(); switch(op) { case 1: printf("\n\tScript para criacao de arquivo\n\tNome do arquivo:\t"); scanf("%s",str); sprintf(buffer, "./ArqExiste.sh %s",str); ret = system(buffer); break; case 2: printf("\n\t****Arquivos do diretA3rio****\n"); ret = system("ls"); break; case 3: printf("\n\tScript para excluir arquivo\n\tNome do arquivo:\t"); scanf("%s",str); sprintf(buffer, "./DeletaArq.sh %s",str); ret = system(buffer); break; } }while(op < MAXOP); return 0;} Pessoal,hoje vamos trabalhar um pouco com as variaveis de ambiente do sistema operacional Linux. Vamos imprimir as variaveis de ambiente na tela, um programa bem simples que vai fazer usado da funcao "getenv" que prcisa do include: "unistd.h" Essa funcao e responsavel por procurar a variavel informada em uma lista de variaveis de ambiente e nos retornar seu valor. Na verdade ele retorna o valor da primeira ocorrencia encontrada. Em C para fazermos o acesso as variaveis de ambiente, podemos fazer atraves de um ponteiro externo, cujo nome e "environ" como pode ser visto no codigo abaixo:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>void imprimeVariaveisDeAmbiente();void imprimeVariavel(char *var);int menuDeOpcoes();extern char** environ;int main(){ int op; char varAmb[40]; do { op = menuDeOpcoes(); switch(op) { case 1: imprimeVariaveisDeAmbiente(); break; case 2: printf("\n\tInforme nome da variavel:\t"); scanf("%s",varAmb); imprimeVariavel(varAmb); break; } }while(op<3); return 0;}void imprimeVariaveisDeAmbiente(){ printf("\n\t----Imprimindo variaAveis de ambiente!!!----"); char ** pEnviron = environ; for(;*pEnviron;*pEnviron++) { printf("\n%s",*pEnviron); }}void imprimeVariavel(char *var){ char * result; result = getenv(var); if(result != NULL) printf("\n\tVariavel:\n\t%s",result); else printf("\n\tNao encontrado!!!");}int menuDeOpcoes(){ int opcao; printf("\n\t1 - Imprimir todas as variaveis;"); printf("\n\t2 - Inmprimir uma variavel;"); printf("\n\t3 - Sair"); printf("\n\tSelecione a opcao:\t"); scanf("%d",&opcao); return opcao;} Ola pessoal, hoje vamos implementar um cliente multithread em C. Na verdade ele nao faz muita coisa, mas o objetivo e gerar um numero de conexoes que irao ou nao se desconectar do servidor, ou seja, pode funcionar como um programa teste para o seu servidor.Para facilitar o nosso entendimento, vamos dividir nosso projeto em arquivos. Nosso arquivos serao os seguintes:Para funcoes de entrada de dados e nossos tipos:Data.cData.hPara