Escolar Documentos
Profissional Documentos
Cultura Documentos
2005/2006
Sistemas Operativos
Aula 02
ETI - IGE
Elementos sobre linguagem C
1. Os argumentos indicados na linha de comando quando se invoca um programa através da shell são
recebidos em dois argumentos do main:
argc : o número de argumentos;
argv : um array com a lista de argumentos;
#include <stdio.h>
main( int argc, char *argv[])
{
int i;
printf ("lista de argumentos:\n");
for ( i = 0; i< argc; i++ )
{
printf ("argv[%d]= %s\n", i, argv[i] );
}
}
2. Exemplo: o seguinte programa requer um argumento, dando erro caso não exista
#include <stdio.h>
main( int argc, char *argv[])
{
if ( argc != 1 )
{
printf ("%s: invalid number of arguments\n", argv[0]);
exit(1);
}
printf ("argumento válido....%s\n", argv[1]);
}
... V i v a o S p o r t i n g ! \0 ...
• strcpy – copia uma string. São copiados sequencialmente os caracteres de src até ser encontrado
o caracter terminador ‘\0’. É necessário ter em conta que o comprimento de dest terá que ser
suficiente para guardar src. Em caso de sucesso a função devolve um ponteiro para a string dest.
char *strcpy( char *src, const char *dest )
• strcmp – compara a string s1 com a string s2. A função devolve 0 no caso das strings serem iguais.
int strcmp( const char *s1, const char *s2 )
• strcat – concatenação de uma string src a uma string dest. Devolve um ponteiro para a string dest.
Atenção que dest deverá ter uma dimensão suficiente para suportar a concatenação.
char *strcat ( char *dest, const char *src )
• strlen – esta função devolve o comprimento de uma string s ( i.e., o número de caracteres até ser
encontrado o caracter terminador ‘\0’, não incluído para calcular o comprimento ).
size_t strlen ( const char *s )
• strstr – procura na string s1 a 1ª ocorrência de uma substring s2. Devolve um ponteiro para o início
da substring encontrada em s1 ou NULL se esta não for encontrada.
char *strchr ( const char *s1, const char *s2 )
int main() {
FILE *fp;
int total, nota, i;
char nome[32];
/* Abertura do ficheiro */
fp = fopen("Alunos.txt","w");
/* Fechar o ficheiro */
fclose(fp);
return 0;
}
O editor funciona a partir de uma linha de comandos. Este versão aceita os seguintes comandos:
3. Finalmente, o objectivo do editor é escrever ficheiros de texto. Adicione os comandos para o efeito:
4. Pretende-se também poder receber o nome do ficheiro na linha de comando; ou seja: ao invocar o
editor pode-se dar o nome do ficheiro como argumento, sendo o efeito semelhante ao comando open
do mesmo ficheiro.
#include <stdio.h>
#include <string.h>
typedef struct
{
char *cmd;
int (*pf)(char *);
} ComandoDef;
char texto[100][80];
int n_linhas = 0;
main()