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