ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
filesystem.c
Go to the documentation of this file.
1
6#include <ascii-chat/platform/filesystem.h>
7#include <ascii-chat/platform/util.h>
8#include <errno.h>
9#include <string.h>
10#include <stdio.h>
11
12// Thread-local storage for error messages (avoids allocation)
13static _Thread_local char error_msg_buffer[512];
14
15const char *file_read_error_message(const char *path) {
16 switch (errno) {
17 case ENOENT:
18 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "File does not exist: %s", path);
19 break;
20 case EACCES:
21 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Permission denied (cannot read): %s", path);
22 break;
23 case EISDIR:
24 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Is a directory, not a file: %s", path);
25 break;
26 default:
27 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Failed to open for reading: %s (%s)", path, platform_strerror(errno));
28 break;
29 }
30 return error_msg_buffer;
31}
32
33const char *file_write_error_message(const char *path) {
34 switch (errno) {
35 case ENOENT:
36 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Directory does not exist: %s", path);
37 break;
38 case EACCES:
39 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Permission denied (cannot write): %s", path);
40 break;
41 case EROFS:
42 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Read-only filesystem: %s", path);
43 break;
44 case ENOSPC:
45 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "No space left on device: %s", path);
46 break;
47 case EISDIR:
48 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Is a directory, not a file: %s", path);
49 break;
50 default:
51 snprintf(error_msg_buffer, sizeof(error_msg_buffer), "Failed to open for writing: %s (%s)", path, platform_strerror(errno));
52 break;
53 }
54 return error_msg_buffer;
55}
const char * file_write_error_message(const char *path)
Definition filesystem.c:33
const char * file_read_error_message(const char *path)
Definition filesystem.c:15
const char * platform_strerror(int errnum)
Definition wasm/system.c:20