나는이 : 잘 작동하지만 내가 시도하고 분리 할 때 내가 "잘못된 인수"오류가공유 메모리에서 문자열 배열을 어떻게 분리합니까? C
int array_id;
char* records[10];
// get the shared segment
if ((array_id = shmget(IPC_PRIVATE, 1, 0666)) == -1) {
perror("Array Creating");
}
// attach
records[0] = (char*) shmat(array_id, (void*)0, 0);
if ((int) *records == -1) {
perror("Array Attachment");
}
.
// detach
int error;
if((error = shmdt((void*) records[0])) == -1) {
perror(array detachment);
}
어떤 아이디어가 있습니까? 고마워요
'shmat'이 "잘"작동한다는 것을 어떻게 알 수 있습니까? 당신은 오류 검사를하지 않았고 ... array_id는 초기화되지 않은 채로 사용됩니다. * 절대 * 수정 된 코드와 불완전한 코드를 게시하지 마십시오. * 항상 * 완성 된 코드와 실제 코드를 게시 할 수 있습니다! – Jens
@Jens 예, 그는 오류가 = -1인지 확인했습니다. 나는 perror (array detachment) 부분에 대해 혼란 스럽다. 사실 그것은 C의 것인가? –
죄송합니다. 오류 체크 아웃을 남겼지 만 첨부 한 후 확인했습니다. 나는 어떤 오류도 발생시키지 않았기 때문에 그것이 잘 작동했다는 것을 알고있다. 그리고 나는 또한 어떤 문자열을 할당하고 그들을 인쇄했다. printf() 대신 perror()를 사용하라고 들었습니다. O.o – Tim