#include #include #include #define TMPDIR "/tmp/" // When invoked, this application writes its input, parameters and // environment variables in differents files: last-(input|parameters|env) in TMPDIR. // // Useful for debugging purposes. int main(int argc, char **argv, char **env) { int fd = open(TMPDIR "last-input", O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); if (fd < 0) { return -1; } size_t nb = 0; char buffer[BUFSIZ]; while((nb = read(0, buffer, BUFSIZ-1))) { dprintf(fd, "%*s", (int)nb, buffer); } close(fd); fd = open(TMPDIR "last-parameters", O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); if (fd < 0) { return -1; } for (size_t i = 0 ; i < argc ; i++) { dprintf(fd, "%s\n", argv[i]); } close(fd); fd = open(TMPDIR "last-env", O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); if (fd < 0) { return -1; } while (env[0] != NULL) { dprintf(fd, "%s\n", env[0]); printf("env: %s\n", env[0]); env++; } close(fd); return 0; }