Chinaunix
标题:
pthread 怪问题!!!
[打印本页]
作者:
rlingxing
时间:
2010-11-12 15:14
标题:
pthread 怪问题!!!
本帖最后由 rlingxing 于 2010-11-12 15:35 编辑
先看代码:
......
pthread_t power_id;
pthread_attr_t power_attr;
pthread_attr_init( &power_attr );
pthread_attr_setdetachstate( &power_attr, PTHREAD_CREATE_DETACHED );
printf ( "cmd_buf --> [ %s ] \n" , cmd_buf ); //
(1)
int ret = pthread_create( &power_id, &power_attr, (void *) power_thread, (void *)cmd_buf );
if ( 0 != ret )
{
lprintf( Log, error, "power thread create \n" );
pthread_attr_destroy( &power_attr );
return err_power;
}
.......
void * power_thead ( void *arg )
{
printf( " enter arg --> [ %s ] \n", (char *) arg ); //
(2)
....
....
}
(1), 有值: TEST@xxxxxxxxxx$poweron$08:00:00$poweroff$23:00:00@
(2), 这里打出来是空的。
也就是说没有传过来,这时为什么? void * power_thead ( void *arg ) // 这是一个线程安全的。 我不想破坏,在里面用全局数据。
请求高人指点。
作者:
rlingxing
时间:
2010-11-12 15:40
回复
1#
rlingxing
问题我已经解决了,可是还是不明白,为什么线程传参不过去! 请大家多多帮忙想想, 有知道的请告诉我,谢谢!
作者:
samlumengjun
时间:
2010-11-12 15:56
你要保证cmd_buf 在创建线程之后没有被改变.
作者:
rlingxing
时间:
2010-11-12 17:18
回复
3#
samlumengjun
嗯! 谢谢你的提醒,这个有注意到!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2