Порядок сборки программы:
cc -Wall -o writeln writeln.c
Порядок запуска:
./writeln аргумент1 аргумент2 ... аргументN
Программа должна добавить к файлу test.txt такую строку:
аргумент1 аргумент2 ... аргументN\n
В случае обнаружения ошибок, недочетов в программе просьба сообщить.
Спасибо.
Исходный код файла «writeln.h»:
const char FILE_NAME[] = "test.txt";
int print_help( char * prog_name );
int fopen_error( void );
int fwrite_error( FILE * stream );
Исходный код файла «writeln.c»:
#include <stdio.h>
#include "writeln.h"
int main( int argc , char * argv[] ) {
FILE * stream;
int chr , i;
if ( argc == 1 )
return print_help( argv[ 0 ] );
stream = fopen( FILE_NAME , "a" );
if ( stream == NULL )
return fopen_error();
for( i = 1 ; i < argc ; i++ ) {
if ( fputs( argv[ i ] , stream ) == EOF )
return fwrite_error( stream );
if ( i == argc-1 )
chr = '\n';
else
chr = ' ';
if ( fputc( chr , stream ) == EOF )
return fwrite_error( stream );
}
fclose( stream );
return 0;
}
int print_help( char * prog_name ) {
fprintf( stderr , "Usage: %s Text of the message\n" , prog_name );
return 1;
}
int fopen_error( void ) {
fprintf( stderr , "Can't open file '%s'.\n" , FILE_NAME );
return 2;
}
int fwrite_error( FILE * stream ) {
fclose( stream );
fprintf( stderr , "Error writing file '%s'.\n" , FILE_NAME );
return 3;
}