Mercurial > minori
comparison dep/animia/src/fd/linux.cc @ 156:cdf79282d647
dep/animia: add VERY early x11 window stuff
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Wed, 15 Nov 2023 18:04:04 -0500 |
| parents | d43d68408d3c |
| children | 44c5e6dd9488 |
comparison
equal
deleted
inserted
replaced
| 155:d2bbb5773616 | 156:cdf79282d647 |
|---|---|
| 1 #include "animia/util.h" | |
| 2 #include "animia/fd/linux.h" | 1 #include "animia/fd/linux.h" |
| 3 #include "animia.h" | 2 #include "animia.h" |
| 3 #include "animia/util.h" | |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <cstring> | |
| 6 #include <filesystem> | 7 #include <filesystem> |
| 7 #include <fstream> | 8 #include <fstream> |
| 8 #include <sstream> | 9 #include <sstream> |
| 9 #include <string> | 10 #include <string> |
| 10 #include <unordered_map> | 11 #include <unordered_map> |
| 11 #include <vector> | 12 #include <vector> |
| 12 #include <cstring> | |
| 13 | 13 |
| 14 #include <dirent.h> | |
| 14 #include <fcntl.h> | 15 #include <fcntl.h> |
| 15 #include <dirent.h> | |
| 16 #include <sys/stat.h> | 16 #include <sys/stat.h> |
| 17 #include <unistd.h> | 17 #include <unistd.h> |
| 18 | 18 |
| 19 #define PROC_LOCATION "/proc" | 19 #define PROC_LOCATION "/proc" |
| 20 | 20 |
| 56 { | 56 { |
| 57 std::string data; | 57 std::string data; |
| 58 if (!util::ReadFile(path, data)) | 58 if (!util::ReadFile(path, data)) |
| 59 return false; | 59 return false; |
| 60 buffer << data; | 60 buffer << data; |
| 61 } | 61 } |
| 62 | 62 |
| 63 int flags = 0; | 63 int flags = 0; |
| 64 for (std::string line; std::getline(buffer, line);) { | 64 for (std::string line; std::getline(buffer, line);) { |
| 65 /* FIXME: exception handling here!! */ | 65 /* FIXME: exception handling here!! */ |
| 66 if (line.rfind("flags:", 0) == 0) { | 66 if (line.rfind("flags:", 0) == 0) { |
| 73 } | 73 } |
| 74 | 74 |
| 75 static std::string GetFilenameFromFd(std::string link) { | 75 static std::string GetFilenameFromFd(std::string link) { |
| 76 /* gets around stupid linux limitation where /proc doesn't | 76 /* gets around stupid linux limitation where /proc doesn't |
| 77 give actual filesize readings */ | 77 give actual filesize readings */ |
| 78 size_t exe_size = 1024; | 78 size_t exe_size = 1024; |
| 79 ssize_t exe_used; | 79 ssize_t exe_used; |
| 80 std::string ret; | 80 std::string ret; |
| 81 | 81 |
| 82 while (1) { | 82 while (1) { |
| 83 ret = std::string(exe_size, '\0'); | 83 ret = std::string(exe_size, '\0'); |
