int test_two() { int retvalue; mode = 0; count = 0; if ((retvalue = init_memshare(NULL, 0, 0)) != 2) { printf("Test 2,0 failed return value %d\n", retvalue); return 1; } if ((retvalue = init_memshare("memshare", SHMEMSIEZ, QUEUESIZE)) != 0) { printf("Test 2,1 failed return value %d\n", retvalue); return 1; } if ((retvalue = init_memshare("memshare", SHMEMSIEZ, QUEUESIZE)) != 1) { printf("Test 2,3 failed return value %d\n", retvalue); return 1; } printf("Test 2 OK\n"); return 0; }
int main(int argc, char *argv[]) { procname = malloc(256); strncpy(procname, argv[1], 256); set_print_level(0); printf("%s started\n", procname); if (init_memshare(procname,SHMEMSIZE , QUEUESIZE)) { printf("Failed to init memshare\n"); exit(1); } data_register(data_callback); signal1_register(signal1_callback); signal2_register(signal2_callback); signal3_register(signal3_callback); while (1) sleep(3); }
int tsyslog_init(char *name) { int oldvalue = 0; int retvalue = 0; if (t_init) { syslog(LOG_INFO, "tsyslog_init: Already registered in this process (%d) as %s. You wanted %s.", getpid(), tproc, name); return 3; } if (name == NULL) return 1; strncpy(tproc, name, (PROC_NAME_SIZE - 1)); /* let memshare use tsyslog as well */ logfunction_register(_tsyslog); openlog(tproc, LOG_NDELAY | LOG_CONS, LOG_LOCAL0); pthread_mutex_lock(&mask_mutex); oldvalue = tlog_mask; /* Store old value, whatever it is */ tlog_mask = 64; /* Setting bit 6, LOG_INFO to allow info printout */ tsyslog(LOG_INFO, "Initializing tsyslog\n"); tlog_mask = oldvalue; /* Set back old value */ pthread_mutex_unlock(&mask_mutex); /* we don't need much space */ if ((retvalue = init_memshare(tproc, SHMEMSIZE, 512)) != 0) { syslog(LOG_ERR, "tsyslog_init: init_memshare returned %d", retvalue); return 2; } /* register the callback */ signal2_register(signal2_callback); t_init = 1; return 0; }
int main(int argc, char *argv[]) { procname = malloc(256); strncpy(procname, argv[1], 256); printf("%s started\n", procname); if (init_memshare(procname, SHMEMSIZE, QUEUESIZE)) { printf("Failed to init memshare\n"); if (strncmp(procname, "number_8", PROC_NAME_SIZE) == 0) { if (system("./memsend -s1 memshare 7") == -1) printf("system cmd failed\n"); } exit(1); } data_register(data_callback); signal1_register(signal1_callback); signal2_register(signal2_callback); signal3_register(signal3_callback); while (1) sleep(3); }
int main(int argc, char *argv[]) { int value1, value2, value3, mode = 0, retvalue, data_size; char dest_proc[PROC_NAME_SIZE], *datastr; memset(dest_proc, '\0', PROC_NAME_SIZE); /* Parse the parameters */ if (argc < 4) { print_usage(); exit(2); } if (!strcmp(argv[1], "-s1")) { if (argc != 4) { print_usage(); exit(2); } mode = 1; value1 = atoi(argv[3]); strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1)); } else if (!strcmp(argv[1], "-s2")) { if (argc != 5) { print_usage(); exit(2); } mode = 2; value1 = atoi(argv[3]); value2 = atoi(argv[4]); strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1)); } else if (!strcmp(argv[1], "-s3")) { if (argc != 6) { print_usage(); exit(2); } mode = 3; value1 = atoi(argv[3]); value2 = atoi(argv[4]); value3 = atoi(argv[5]); strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1)); } else if (!strcmp(argv[1], "-d")) { if (argc != 4) { print_usage(); exit(2); } mode = 4; data_size = strlen(argv[3]); strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1)); datastr = malloc(data_size); strncpy(datastr, argv[3], data_size); } if (mode == 0) { print_usage(); exit(3); } /*set_print_level(CH_DEBUG); */ init_memshare("memsend", 0, 0); switch (mode) { case 1: retvalue = signal1(dest_proc, value1); break; case 2: retvalue = signal2(dest_proc, value1, value2); break; case 3: retvalue = signal3(dest_proc, value1, value2, value3); break; case 4: retvalue = data(dest_proc, datastr, data_size); free(datastr); break; default: /* No place to be */ break; } if (retvalue == 0) exit(0); if (retvalue == 1) { printf("The destination process %s is not present!\n", dest_proc); exit(1); } /* No place to be */ exit(2); }