projects
/
gapil.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2399155
)
Adding signal handler to remove shared mem and semaphore
author
Simone Piccardi
<piccardi@gnulinux.it>
Thu, 30 Dec 2010 22:40:50 +0000
(22:40 +0000)
committer
Simone Piccardi
<piccardi@gnulinux.it>
Thu, 30 Dec 2010 22:40:50 +0000
(22:40 +0000)
sources/message_getter.c
patch
|
blob
|
history
diff --git
a/sources/message_getter.c
b/sources/message_getter.c
index 3c94b2d4bc46cf845fb58e45a420769fcf4a2884..e1aff0cdacc27f0d3bdfe45bde0232ce698b82bd 100644
(file)
--- a/
sources/message_getter.c
+++ b/
sources/message_getter.c
@@
-41,16
+41,17
@@
*/
/* Help printing routine */
void usage(void);
*/
/* Help printing routine */
void usage(void);
+void HandSigInt(int sig);
#define MSGMAXSIZE 256
#define MSGMAXSIZE 256
+char *shmname = "messages";
+char *semname = "messages";
int main(int argc, char *argv[])
{
int i;
sem_t * sem;
time_t t;
int main(int argc, char *argv[])
{
int i;
sem_t * sem;
time_t t;
- char *shmname = "messages";
- char *semname = "messages";
char * res;
void * shm_ptr;
/*
char * res;
void * shm_ptr;
/*
@@
-92,8
+93,8
@@
int main(int argc, char *argv[])
printf("Wrong number of arguments %d\n", argc - optind);
usage();
}
printf("Wrong number of arguments %d\n", argc - optind);
usage();
}
+ Signal(SIGINT, HandSigInt);
// Get shared memory segment
// Get shared memory segment
- RemoveShm(shmname);
shm_ptr = CreateShm(shmname, MSGMAXSIZE, 0666, 0);
if ( shm_ptr == NULL) {
perror("Cannot find shared memory");
shm_ptr = CreateShm(shmname, MSGMAXSIZE, 0666, 0);
if ( shm_ptr == NULL) {
perror("Cannot find shared memory");
@@
-150,3
+151,10
@@
void usage(void) {
printf(" -s semname use semname semaphore\n");
exit(1);
}
printf(" -s semname use semname semaphore\n");
exit(1);
}
+
+void HandSigInt(int sig)
+{
+ RemoveShm(shmname);
+ sem_unlink(semname);
+ exit(0);
+}