#include "header.h" char convertChar(char ch) { if(isupper(ch) != 0) { ch = tolower(ch); } else { ch = toupper(ch); } return ch; } void sig_term_handler(int sig_num) { fprintf(stderr, "convert has been killed\n"); exit(1); } void sig_pipe_handler(int sig_num) { fprintf(stderr, "convert's pipe has been broken\n"); exit(2); } int main(int argc, char *argv[]) { struct args these_args; char buffer[BUFSIZE]; int i; int fd_in; int fd_out; signal(SIGTERM, sig_term_handler); signal(SIGPIPE, sig_pipe_handler); sleep(5); these_args = parse_input(argc, argv); fd_in = these_args.input_fd; fd_out = these_args.output_fd; if(fd_in != 0) { close(INPUT); dup(fd_in); } if(fd_out != 1) { close(OUTPUT); dup(fd_out); } read(INPUT, buffer, BUFSIZE); /* scanf("%s", buffer); */ for(i = 0; i < strlen(buffer); i++) { buffer[i] = convertChar(buffer[i]); } /* buffer[charCount] = 0x00; null terminating */ /* printf("%s", buffer); */ write(OUTPUT, buffer, strlen(buffer)); }