px_ipc_name.c

 

 1     /* include px_ipc_name */
 2 #include    "unpipc.h"
 3  
 4 char *
 5 px_ipc_name(const char *name)
 6 {
 7  
 8     char    *dir, *dst, *slash;
 9  
10     if ( (dst = malloc(PATH_MAX)) == NULL)
11         return(NULL);
12  
13         /* 4can override default directory with environment variable */
14     if ( (dir = getenv("PX_IPC_NAME")) == NULL) {
15  
16 #ifdef  POSIX_IPC_PREFIX
17         dir = POSIX_IPC_PREFIX;     /* from "config.h" */
18 #else
19         dir = "/tmp/";              /* default */
20 #endif
21      
22 }
23         /* 4dir must end in a slash */
24     slash = (dir[strlen(dir) - 1] == '/') ? "" : "/";
25     snprintf(dst, PATH_MAX, "%s%s%s", dir, slash, name);
26  
27     return(dst);            /* caller can free() this pointer */
28  
29 }
30 /* end px_ipc_name */
31  
32 char *
33 Px_ipc_name(const char *name)
34 {
35  
36     char    *ptr;
37  
38     if ( (ptr = px_ipc_name(name)) == NULL)
39         err_sys("px_ipc_name error for %s", name);
40     return(ptr);
41  
42 }

 

posted on 2015-02-05 11:45  aituming  阅读(444)  评论(0编辑  收藏  举报