- 论坛徽章:
- 0
|
Vmware 4.5 中Linux下C编程奇怪的问题?求助
第二个问题主要是不明白,为什么正常的使用联合体时就出现了这种情况?
程序如下:
#include <sys/types.h>;
#include <sys/ipc.h>;
#include <sys/sem.h>;
#include <stdio.h>;
#include <stdlib.h>;
#include <unistd.h>;
#define SEM_NUM 10
#define SEM_MODE (IPC_CREAT|0660)
void printfmode(union semun *arg);
void changemode(int sid, char* mode);
int main(void)
{
int semid;
union semun semopts;
struct semid_ds semds;
if((semid = semget(IPC_PRIVATE, SEM_NUM, SEM_MODE)) == -1)
{
fprintf(stderr, "semget error!\n" ;
exit(1);
}
semopts.buf = &
if(semctl(semid, IPC_STAT, semopts) == -1)
{
fprintf(stderr, "get semid_ds error!\n" ;
exit(1);
}
printfmode(&semopts);
changemode(semid, "0600" ;
if(semctl(semid, IPC_STAT, semopts) == -1)
{
fprintf(stderr, "get semid_ds error!\n" ;
exit(1);
}
printfmode(&semopts);
if(semctl(semid, IPC_RMID, 0) < 0)
{
fprintf(stderr, "semctl error!\n" ;
exit(1);
}
exit(0);
} |
|