извините, если мой английский ужасен: я очень переживаю :(
Я использую Ubuntu 11.04, который работает как виртуальная машина. Использование VMWARE в качестве операционной системы виртуальной машины - Windows 7.
Я пытаюсь написать программу на Linux с языком C: с использованием общей памяти. когда я пытаюсь скомпилировать, ошибок нет, но когда я ее выполняю, я вижу такую ошибку:
Ошибка сегментации (ядро сброшено)
Я не уверен, но насколько я узнал, VMWARE вызывает это: S
вот коды:
#include<stdio.h>
#include<sys/wait.h> //Process wait
#include <fcntl.h> //File
//#include <cstdlib>
//#include<fstream.h>
int main(){
printf("\n Here we go...!");
int *Numbers;
Numbers=(int*)getmem(327); // shared memory
int i,ProcID;
ProcID=fork(); //depart processor
if(ProcID==0){ // child processor
for(i=0;i<50;i++){
Numbers[i]=random()%50;
}
}else if(ProcID<0){
printf("\n Hmm... There is an error!");
}
int Waiting;
wait(&Waiting);
if(ProcID>0){ // parent processor
int fileeven,fileodd;
fileeven=open("EK_even.txt",O_RDWR|O_CREAT,0600);
fileodd=open("EK_odd.txt",O_RDWR|O_CREAT,0600);
for(i=0;i<50;i++){
if(Numbers[i]%2==0){
write(fileeven,&Numbers[i],sizeof(Numbers[i]));
}else{
write(fileodd,&Numbers[i],sizeof(Numbers[i]));
}
}
close(fileeven);
close(fileodd);
}else if(ProcID<0){
printf("\n Hmm... There is an error!");
}
return 1;
}
Я использую это для компиляции на терминале: gcc -o ./RUN ./EK.c -shared
бежать: ./ RUN
в результате: ошибка сегментации (ядро сброшено)
Спасибо за ваше время и ответы, я действительно нуждаюсь ...