код C ++, подобный приведенному ниже, написан для встроенного устройства.процесс, запущенный на устройстве, падает при запуске.на некоторых других версиях устройства сбоя не наблюдается.может ли это быть связано с вызываемым аргументом потока и отсоединением потока.на обычном окружении рабочего стола Linux он не падает.Может кто-нибудь, пожалуйста, дайте свои комментарии.Заранее спасибо.
#include <pthread.h>
#include <iostream>
using namespace std;
#define NUM_THREADS 2
void *PrintHello(void *msg)
{
cout<<(char*)msg<<endl;
while(1)
{
printf("Hello World! It's me, thread !\n");
sleep(2);
}
}
int main (int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
int rc;
long t;
const char* ch = "hello how r u.i'm passing argument";
for(t=0; t<NUM_THREADS; t++)
{
printf("In main: creating thread %ld\n", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)ch);
pthread_detach(threads[t]);
if (rc)
{
printf("ERROR; return code from pthread_create() is %d\n", rc);
exit(-1);
}
}
return 0;
}