fixed --help

This commit is contained in:
Jan 2026-05-15 17:21:05 +02:00 committed by GitHub
parent 09840e522a
commit 960f6922ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -6,13 +6,13 @@
#include <stdlib.h>
int main(int argc, char *argv[]) {
// print all lines
if (argc == 2) {
if (strcmp(argv[1], "--help") == 0) {
printf("-This command reads from the front of the file\n");
printf("-This command reads from the back of the file\n");
printf("-Use: tail [-n] [-number of lines] [file]\n");
return 0;
}
//print everything
FILE *fp = fopen(argv[1], "r");
if (fp == NULL) {
printf("File not found\n");
@ -25,7 +25,7 @@ int main(int argc, char *argv[]) {
fclose(fp);
return 0;
}
// only print first lines
// only print last lines
if (argc == 4 && strcmp(argv[1], "-n") == 0) {
int lines = atoi(argv[2]);
if (lines <= 0) {
@ -39,10 +39,24 @@ int main(int argc, char *argv[]) {
return 1;
}
// count total lines
int count = 0;
char buf[1024];
while (lines > 0 && fgets(buf, sizeof(buf), fp)) {
printf("%s", buf);
lines--;
while (fgets(buf, sizeof(buf), fp)) {
count++;
}
// back to start of file
fseek(fp, 0, SEEK_SET);
// check if lines are the end lines
int skip = count - lines;
int i = 0;
while (fgets(buf, sizeof(buf), fp)) {
if (i >= skip) {
printf("%s", buf);
}
i++;
}
fclose(fp);