#include #include #include #include #include #include #include #include #include #define SOCKETNAME "/tmp/monitord.socket" int docommand(int command, char *buf, int buflen) { int socketfd, count; struct sockaddr_un servaddr; socketfd = socket(AF_UNIX, SOCK_STREAM, 0); if (socketfd < 0) { perror("socket_open"); return -1; } memset(&servaddr, 0, sizeof(servaddr)); servaddr.sun_family = AF_UNIX; strncpy(servaddr.sun_path, SOCKETNAME, 108); if (connect(socketfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) { perror("socket_connect"); return -1; } send(socketfd, &command, sizeof(int), 0); count = recv(socketfd, buf, buflen, MSG_WAITALL); close(socketfd); return count; } void dowrite() { docommand(2, NULL, 0); } int main() { dowrite(); return 0; }