Codigo fonte
###############################################################
/*
* rawcat.c
* Apresenta arquivo com linhas numeradas
*/#include <stdio.h>
#define TAMBUFF 120int main(int argc, char* argv[])
{
FILE *arquivo;
char *linha;
char buffer[TAMBUFF];
int contLinha = 0;if (argc != 2)
{
fprintf(stderr, “%s requer um nome de arquivo\n”, argv[0]);
return 1;
}
arquivo = fopen(argv[1], “r”);
if (arquivo == 0)
{
fprintf(stderr, “Arquivo %s nao pode ser aberto para leitura\n”, argv[1]);
return 2;
}
while (!feof(arquivo))
{
linha = fgets(buffer, TAMBUFF, arquivo);
if (linha != 0)
printf(“%3d: %s”, ++contLinha, linha);
}
fclose(arquivo);
printf(“\n%s\n”, argv[1]);
return 0;
}###############################################################
1#if (argc != 2)
2#fprintf(stderr, "%s requer um nome de arquivo\n", argv[0]);
3#return 1;
1# Compara se o argumento passado para o executável existe
2# Nao existindo apresenta uma mensagem de erro
3# retorna um código de erro para o OS
#Se ele existe
arquivo = fopen(argv[1], "r");
#Abre o arquivo para leitura
if (arquivo == 0)
#Compara para ver se o arquivo pode ser aberto
fprintf(stderr, "Arquivo %s não pode ser aberto para leitura\n", argv[1]);
#retorna uma mensagem caso ele não possa ser aberto para leitura
return 2;
#retorna um codigo de erro para o OS
if (arquivo == 0)
#Compara para ver se o arquivo passado como argumento pode ser aberto para leitura
while (!feof(arquivo))
#Enquanto o arquivo estiver aberto e não chegar no final
linha = fgets(buffer, TAMBUFF, arquivo);
#Atribui o valor da linha no loop
if (linha != 0)
#verifica se a linha não e invalida
printf("%3d: %s", ++contLinha, linha);
#imprime uma mensagem numerada com o valor da linha e soma um ao contador da linha atual do arquivo
fclose(arquivo);
#Fecha o arquivo
printf("%s\n", argv[1]);
#imprime uma mensagem com o nome do arquivo
return 0;
#retorna um código de sucesso ao OS
Como compilar o codigo
$cc rawcat.c -o rawcat
Mudando as atribuições para que ele possa ser executado
Usando o novo comando
$./rawcat [arquivo.xyz]
Saída:
$ ./rawcat rawcat.c
1: /*
2: * rawcat.c
3: * Apresenta arquivo com linhas numeradas
4: */
5:
6:
7: #include <stdio.h>
8: #define TAMBUFF 120
9:
10: int main(int argc, char* argv[])
11: {
12: FILE *arquivo;
13: char *linha;
14: char buffer[TAMBUFF];
15: int contLinha = 0;
16:
17: if (argc != 2)
18: {
19: fprintf(stderr, “%s requer um nome de arquivo\n”, argv[0]);
20: return 1;
21: }
22: arquivo = fopen(argv[1], “r”);
23: if (arquivo == 0)
24: {
25: fprintf(stderr, “Arquivo %s nao pode ser aberto para leitura\n”, argv[1]);
26: return 2;
27: }
28: while (!feof(arquivo))
29: {
30: linha = fgets(buffer, TAMBUFF, arquivo);
31: if (linha != 0)
32: printf(“%3d: %s”, ++contLinha, linha);
33: }
34: fclose(arquivo);
35: printf(“%s\n”, argv[1]);
36: return 0;
37: }rawcat.c
$Post em Construção
Sem comentários ainda até o momento
Deixe um comentário
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>