add a few more tests, mini-refactor.
This commit is contained in:
parent
c752033121
commit
aef8269a68
3
makefile
3
makefile
|
@ -31,3 +31,6 @@ format: $(SRC)
|
|||
|
||||
test: $(OUTPUT)
|
||||
/bin/echo -e "123\n45 67" | ./$(OUTPUT)
|
||||
/bin/echo -n "" | ./wc
|
||||
./$(OUTPUT) $(SRC)
|
||||
./$(OUTPUT) nonexistent_file || true
|
||||
|
|
18
wc.c
18
wc.c
|
@ -2,11 +2,11 @@
|
|||
#include <unistd.h> // read, isatty
|
||||
|
||||
// STDIN_FILENO
|
||||
int process_fp(int filenum)
|
||||
int process_fn(int fn)
|
||||
{
|
||||
char buffer[1];
|
||||
while (read(filenum, buffer, sizeof(buffer)) > 0) {
|
||||
printf("%c", buffer[0]);
|
||||
char c[1];
|
||||
while (read(fn, c, sizeof(c)) > 0) {
|
||||
printf("%c", c[0]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -14,9 +14,17 @@ int process_fp(int filenum)
|
|||
int main(int argc, char** argv)
|
||||
{
|
||||
if (!isatty(STDIN_FILENO)) {
|
||||
return process_fp(STDIN_FILENO);
|
||||
return process_fn(STDIN_FILENO);
|
||||
} else if(argc > 1){
|
||||
FILE* fp = fopen(argv[1], "r");
|
||||
if(!fp){
|
||||
perror("Could not open file");
|
||||
return 1;
|
||||
}
|
||||
return process_fn(fileno(fp));
|
||||
} else{
|
||||
printf("To do");
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user