[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH] Shell: Beim cat nicht nur auf EOF sonder auch Fehler pruefen
! Shell: Beim cat nicht nur auf EOF sonder auch Fehler pruefen
Signed-off-by: Antoine Kaufmann <toni@xxxxxxxxxx>
---
src/modules/c/shell/cmds/cat.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/modules/c/shell/cmds/cat.c b/src/modules/c/shell/cmds/cat.c
index ffa70ce..a8320b4 100644
--- a/src/modules/c/shell/cmds/cat.c
+++ b/src/modules/c/shell/cmds/cat.c
@@ -49,6 +49,8 @@ void cat_display_usage(void);
int main(int argc, char* argv[])
#endif
{
+ int result = EXIT_SUCCESS;
+
if (argc != 2) {
cat_display_usage();
return -1;
@@ -59,22 +61,28 @@ void cat_display_usage(void);
if (file == NULL) {
printf("Konnte '%s' nicht zum lesen oeffnen!\n", path);
+ result = EXIT_FAILURE;
} else {
char buffer[BLOCK_SIZE + 1];
size_t size;
- while (feof(file) != EOF) {
+ while (!feof(file) && !ferror(file)) {
size = fread(buffer, 1, BLOCK_SIZE, file);
buffer[size] = 0;
printf("%s", buffer);
}
+
+ if (ferror(file)) {
+ puts("Beim Lesen ist ein Fehler aufgetreten!\n");
+ result = EXIT_FAILURE;
+ }
fclose(file);
printf("\n");
}
- return EXIT_SUCCESS;
+ return result;
}
void cat_display_usage()
--
1.6.4.4