I want to pass an argument of a specific file location using realpath() (example: /var/log/message) and by using fprintf print the content of this file on the terminal.
This is the code I have so far:
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
if (argc < 2) {
printf("Usage: %s <path>\n", argv[0]);
return 1;
}
char *fullpath = realpath(argv[1], NULL);
FILE *fptr;
fptr = fopen(fullpath, "r");
fprintf(fptr, "%s");
return 0;
}
It doesn't throw errors, but it also doesn't do what I want it to do.
When I run it e.g. ./test /var/log/message it will show me this on the terminal:
Segmentation fault (core dumped)
OS version
NAME="Fedora Linux"
VERSION="36
Compiler
gcc
Got back to my function and added some more functionality and now it's working by adding argument for it. What I had to do is to declare that fptr is FILE and c is character type, running a while loop over the file and print its content and with using
fgetcstream that content to the terminal.Current code:
Thanks all for your assistance.