История изменений
Исправление saahriktu, (текущая версия) :
Вот что-что а ни ls ни cat в будут ну явно не десяток и даже не двадцаток строк
>cat myls.c
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
main(int argc, char **argv)
{
DIR *dptr;
struct dirent *ds;
dptr = opendir(argv[1]);
while ((ds = readdir(dptr)) != 0)
printf("%s\n", ds->d_name);
closedir(dptr);
}
---------------------
/*
* Unixway cat implementation v0.1 by saahriktu
* under GNU GPLv3
*/
#include <stdio.h>
#include <string.h>
void
copystdin ()
{
int stdc;
while ((stdc = getchar ()) != EOF)
putchar (stdc);
}
int
main (int argc, char **argv)
{
int nfid, c;
FILE *fptr;
if (argc != 1)
{
for (nfid = 1; nfid < argc; nfid++)
{
if (!strcmp ("-", argv[nfid]))
{
copystdin ();
continue;
}
else if ((fptr = fopen (argv[nfid], "r")) == NULL)
continue;
while ((c = fgetc (fptr)) != EOF)
putchar (c);
fclose (fptr);
}
}
else
copystdin ();
return 0;
}
Исходная версия saahriktu, :
Вот что-что а ни ls ни cat в будут ну явно не десяток и даже не двадцаток строк
>cat myls.c
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
main(int argc, char **argv)
{
DIR *dptr;
struct dirent *ds;
dptr = opendir(argv[1]);
while ((ds = readdir(dptr)) != 0)
printf("%s\n", ds->d_name);
closedir(dptr);
}
/*
* Unixway cat implementation v0.1 by saahriktu
* under GNU GPLv3
*/
#include <stdio.h>
#include <string.h>
void
copystdin ()
{
int stdc;
while ((stdc = getchar ()) != EOF)
putchar (stdc);
}
int
main (int argc, char **argv)
{
int nfid, c;
FILE *fptr;
if (argc != 1)
{
for (nfid = 1; nfid < argc; nfid++)
{
if (!strcmp ("-", argv[nfid]))
{
copystdin ();
continue;
}
else if ((fptr = fopen (argv[nfid], "r")) == NULL)
continue;
while ((c = fgetc (fptr)) != EOF)
putchar (c);
fclose (fptr);
}
}
else
copystdin ();
return 0;
}