Здравствуйте. Я пытаюсь создать объект общей памяти с помощью функций POSIX, но получаю странную ошибку.
// Создать общую память
if( (shmid = shm_open("/OS", O_CREAT ,0700)) == -1){
printf("Error creating memory\n");
exit(1);
}
printf("shmid: %d\n", shmid);
if (ftruncate(shmid, sizeof(int)) == -1){
printf("Error defining size\n");
exit(1);
}
Как вы можете себе представитьон продолжает печатать «Ошибка определения размера». Значение, напечатанное shmid, равно 3, действительное значение. И все же функции ftruncate () возвращают -1 из-за ошибки ... значение, установленное в errno, равно 22, что, как я видел в Интернете, связано с "недопустимыми аргументами", но я не понимаю, почему .... предложения