Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:лабораторки по ОС препод Челноков / 2семестр / VD / BuH / 2sem / unix2dos
.c# include <stdio.h>
static void err_report();
static FILE *Fpi;
main(argc, argv)
int argc;
char **argv;
{
register int data = 0;
register int lastdata = 0;
register int already_dos = 0;
/* open input file */
switch (argc) {
case 1:
{
Fpi = stdin;
break;
}
case 2:
{
if ((Fpi = fopen(*++argv, "r")) == NULL)
err_report(1);
break;
}
default:
err_report(0);
}
while ( ! feof(Fpi)) {
lastdata = data;
data = fgetc(Fpi);
if (data == EOF) break;
if (! already_dos) {
if (data == '\n') {
if (lastdata != '\015')
(void) fputc('\015',stdout);
else
++already_dos;
}
}
(void) fputc(data,stdout);
}
if ( ! already_dos)
(void) fputc('\026',stdout); /* a control-Z */
(void) fclose(Fpi);
exit(0);
}
static void err_report(n)
int n;
{
switch (n) {
case 0:
(void) fprintf(stderr,"Usage: %s <file> \n",NAME);
break;
case 1:
(void) fprintf(stderr,"%s: Unable to open input file.\n",NAME);
break;
}
exit(1);
}
/* EOF */