Witam!
Chciałem użyć wewnątrz wątku funkcję atoi(), ale w momencie gdy program dochodzi do tego momentu następuje naruszenie ochrony pamięci i program się wyłącza. Wątek odpowiada za przesłanie za pomocą socketów danych w zależności od tego o co zostanie zapytany, a funkcja atoi() przekształca część tego zapytania na liczbę. Fragment kodu:
bzero(buffer,3);
n = read(newsockfd,buffer,3);
if (n < 0)
{
error("ERROR reading from socket");
}
printf("Otrzymane zapytanie: %s\n",buffer);
if(n>0 && buffer[0]=='d')
{
urzadzenie=atoi(buffer[1]);
for(int i=0; i<liczba_urzadzen; i++)
{
if(devices_id[i]==urzadzenie)
{
p[0]=((pomiar[i]&0x000000FF));
p[1]=((pomiar[i]&0x0000FF00)>>8);
p[2]=((pomiar[i]&0x00FF0000)>>16);
p[3]=((pomiar[i]&0xFF000000)>>32);
snprintf(impulsy, 20, "%c%c%c%c%c\n\r",buffer[0],p[3],p[2],p[1],p[0]);
break;
}
}
Jakieś pomysły?
z góry dzięki
pozdrawiam
herszt