我的程序有问题,我真的需要快速处理它。你能帮助我吗 ?我得到"无效的内存参考(SIGSEGV)"错误,我不知道如何解决它。我尝试了一些事情,但我仍然得到同样的信息......我会感激任何帮助。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
void producent(int *filedes)
{
char *bufor;
FILE *p;
close (filedes[0]);
srand( time( NULL ));
bufor=(char*)malloc(256);
p=fopen("producent.txt", "e");
while (p!=NULL)
{
printf("producent:\n");
printf("%s\n", bufor);
if (write(filedes[1],bufor, 256)==-1)
{
perror("Blad funkcji write\n");
exit(1);
}
sleep(rand);
}
fclose(p);
close (filedes[1]);
free(bufor);
wait(NULL);
}
void konsument (int *filedes)
{
char *bufor;
FILE *k;
close (filedes[1]);
srand(time( NULL ));
bufor=(char*)malloc(256);
k=fopen("konsument.txt", "s");
while (read(filedes[0],bufor,256)>0)
{
printf("konsument:\n");
printf("%s\n",bufor );
fputs(bufor,k);
sleep(rand);
}
fclose(k);
close(filedes[1]);
free(bufor);
}
int main()
{
int filedes[2];
switch (fork())
{
case -1:
perror("Bląd funkcji fork\n");
exit(1);
break;
case 0:
konsument(filedes);
break;
default:
producent(filedes);
break;
}
return 0;
}
感谢您提供任何帮助!