#include #include #include #include #include char* user_report(){ static char report_buffer[1024]; system("who | sed 's/ .*//g' | sort -u > /tmp/user_report"); int fd = open("/tmp/user_report", O_RDONLY); read(fd, report_buffer, 1024); close(fd); return report_buffer; } char* user_report_r(char *restrict report_buffer){ system("who | sed 's/ .*//g' | sort -u > /tmp/user_report"); int fd = open("/tmp/user_report", O_RDONLY); read(fd, report_buffer, 1024); close(fd); return report_buffer; } int main(){ char *report = user_report(); if(strstr(report, "fred")){ printf("Fred is logged in\n"); } else { printf("Fred is not logged in\n"); } sleep(5); char new_report[100]; user_report_r(new_report); printf("Original Report: \n%s", report); printf("\n**\nNew Report: \n%s", new_report); return 0; }