int fputs (const char * string, FILE * fluxo);
Escreve a cadeia de caracteres string no fluxo.
É importante notar que a função fputs não tem a mesma funcionalidade que a função puts. Além de ser possível especificar o fluxo ao utilizar a fputs, ela não adiciona uma nova linha (\n) na saída. A função puts escreve diretamente na saída padrão e adiciona uma nova linha (\n) na saída.
A função continua escrevendo até encontrar o indicador de fim da cadeira de caracteres, o caractere NULL ('\0'). O NULL não é incluído no fluxo.
string - Cadeia de caracteres a ser escrita. Deve ser terminada pelo caractere NULL.
fluxo - Ponteiro para um objeto FILE onde os dados serão copiados. Para escrever na saída padrão, utilizar stdout.
Em caso de sucesso, a função retorna um inteiro não-negativo.
Em caso de erro, a função retorna EOF e o indicador de erro (ferror) é setado.
#include <stdio.h>
/* programa com funcionalidade similar ao cat no Unix e type no Windows/DOS */
int main(int argc, char* argv[]) {
if(argc < 2) {
fputs("É necessário especificar o nome do arquivo a ser lido.", stderr);
return;
}
FILE* arquivo = fopen(argv[1], "r");
if(arquivo == NULL) {
fprintf(stderr, "Erro ao abrir %s em modo leitura (r).", argv[1]);
return 1;
}
char linha[1024];
while(fgets(linha, sizeof(linha), arquivo) != NULL) {
fputs(linha, stdout);
}
fclose(arquivo);
return 0;
}