PatchworkOS  3984a1d
A non-POSIX operating system.
Loading...
Searching...
No Matches
main.c
Go to the documentation of this file.
1#define __STDC_WANT_LIB_EXT1__ 1
2#include <errno.h>
3#include <stdbool.h>
4#include <stdint.h>
5#include <stdio.h>
6#include <stdlib.h>
7#include <string.h>
8#include <sys/io.h>
9
10int main(int argc, char** argv)
11{
12 if (argc < 2)
13 {
14 fprintf(stderr, "%s <path>\n", argv[0]);
15 return EXIT_FAILURE;
16 }
17
18 char buffer[MAX_PATH];
19 uint64_t len = readlink(argv[1], buffer, sizeof(buffer) - 1);
20 if (len == ERR)
21 {
22 fprintf(stderr, "readlink: failed to readlink %s (%s)\n", argv[1], strerror(errno));
23 return EXIT_FAILURE;
24 }
25 buffer[len] = '\0';
26 printf("%s\n", buffer);
27
28 return EXIT_SUCCESS;
29}
#define MAX_PATH
Maximum length of filepaths.
Definition MAX_PATH.h:11
int main(void)
Definition main.c:5
#define errno
Error number variable.
Definition errno.h:27
size_t readlink(const char *path, char *buffer, uint64_t count)
System call for reading the target of a symbolic link.
Definition readlink.c:8
#define ERR
Integer error value.
Definition ERR.h:17
EFI_PHYSICAL_ADDRESS buffer
Definition mem.c:15
__UINT64_TYPE__ uint64_t
Definition stdint.h:17
_PUBLIC int printf(const char *_RESTRICT format,...)
Definition printf.c:3
FILE * stderr
Definition std_streams.c:19
_PUBLIC int fprintf(FILE *_RESTRICT stream, const char *_RESTRICT format,...)
Definition fprintf.c:3
#define EXIT_SUCCESS
Definition stdlib.h:46
#define EXIT_FAILURE
Definition stdlib.h:47
_PUBLIC char * strerror(int errnum)
Definition strerror.c:6