- 论坛徽章:
- 0
|
#include<stdio.h>\r\n#include<sys/sem.h>\r\n#include<sys/shm.h>\r\n\r\n#define SHM_TRACE_NO 3000\r\n#define CCP_IDX_LEN 100\r\nint shmtraceno;\r\nchar *pshm_traceno; \r\n\r\nint main()\r\n{\r\n long traceno;\r\n\r\n if ((shmtraceno = shmget(SHM_TRACE_NO, 8192, 0666|IPC_CREAT)) == -1)\r\n { \r\n perror(\"asrecv shmget\");\r\n exit(1);\r\n }\r\n if ((pshm_traceno = shmat(shmtraceno, (char *)0, 0)) == (char *)-1)\r\n {\r\n perror(\"shmat err\");\r\n exit(1);\r\n }\r\n\r\n traceno = 10000;\r\n\r\n /*memcpy(pshm_traceno + CCP_IDX_LEN, \"111111111\", sizeof(traceno));*/\r\n memcpy(pshm_traceno + CCP_IDX_LEN, (char *)&traceno, sizeof(traceno));\r\n\r\n fprintf(stderr, \"[%s]\", pshm_traceno + CCP_IDX_LEN);\r\n}\r\n\r\n运行 memcpy(pshm_traceno + CCP_IDX_LEN, \"111111111\", sizeof(traceno)); fprintf能打印到内容 。\r\n用 memcpy(pshm_traceno + CCP_IDX_LEN, (char *)&traceno, sizeof(traceno)); 打印的内容 就是空的。\r\n\r\n这边环境是 aix 5.3.3 64位, 各位要什么参数 如 .profile等,我马上发上来, 在线等!!! |
|