Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _DEFAULT_SOURCE
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- #include <signal.h>
- #include <stdint.h>
- #include <string.h>
- #include <ctype.h>
- #define UNUSED_FUNC_ARG(x) ((void)x)
- #define osAssert(cond, msg) osErrorFatal(cond, msg, __FILE__, __LINE__)
- void obrni_rec(char* niska);
- void zameni_mala_sa_velikim(char* niska);
- void osErrorFatal(bool cond, const char *msg, const char *file, int line);
- void sigUsr1Handler(int sigNum);
- void sigUsr2Handler(int sigNum);
- void sigTermHandler(int sigNum);
- int sig_usr1 = 0;
- int sig_usr2 = 0;
- int terminate = 0;
- int main(int argc, char** argv)
- {
- fprintf(stderr, "%d\n", getpid());
- osAssert(SIG_ERR != signal(SIGUSR1, sigUsr1Handler), "signal failed");
- osAssert(SIG_ERR != signal(SIGUSR2, sigUsr2Handler), "signal failed");
- osAssert(SIG_ERR != signal(SIGTERM, sigTermHandler), "signal failed");
- char rec[64];
- while(!terminate)
- {
- scanf("%s", rec);
- pause();
- if(sig_usr1 > 0)
- {
- obrni_rec(rec);
- sig_usr1 = 0;
- }
- if(sig_usr2 > 0)
- {
- zameni_mala_sa_velikim(rec);
- sig_usr2 = 0;
- }
- }
- return 0;
- }
- void sigUsr1Handler(int sigNum)
- {
- UNUSED_FUNC_ARG(sigNum);
- sig_usr1++;
- }
- void sigUsr2Handler(int sigNum)
- {
- UNUSED_FUNC_ARG(sigNum);
- sig_usr2++;
- }
- void sigTermHandler(int sigNum)
- {
- UNUSED_FUNC_ARG(sigNum);
- terminate = 1;
- }
- void osErrorFatal(bool cond, const char *msg, const char *file, int line)
- {
- if (!cond) {
- perror(msg);
- fprintf(stderr, "%s:%d\n", file, line);
- exit(EXIT_FAILURE);
- }
- }
- void obrni_rec(char* niska)
- {
- int duzina = strlen(niska);
- int i;
- for(i=0;i<duzina/2;i++)
- {
- char tmp = niska[i];
- niska[i] = niska[duzina-1-i];
- niska[duzina-1-i] = tmp;
- }
- printf("%s\n", niska);
- }
- void zameni_mala_sa_velikim(char* niska)
- {
- int i;
- for(i=0; niska[i]; i++)
- {
- if(islower(niska[i]))
- {
- niska[i] = toupper(niska[i]);
- }
- }
- printf("%s\n", niska);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement