当前位置:  技术问答>linux和unix

thread specific data产生的stack smashing

    来源: 互联网  发布时间:2016-02-12

    本文导语:  大家好,今天学习编程遇到了一个问题,下面的一个程序使用了thread specific data,目的是为每一个线程保存一个日志文件的FILE流。源码如下: #include  #include  #include  static pthread_key_t thread_log_key; void write_to_thread_...

大家好,今天学习编程遇到了一个问题,下面的一个程序使用了thread specific data,目的是为每一个线程保存一个日志文件的FILE流。源码如下:

#include 
#include 
#include 
static pthread_key_t thread_log_key;

void write_to_thread_log(const char* message)
{
FILE* thread_log=(FILE*)pthread_getspecific(thread_log_key);
fprintf(thread_log,"%sn",message);
printf("thread_log_key=%xtthreadID=%xtthread_log=%xn",thread_log_key,pthread_self(),thread_log);
}
void close_thread_log(void* thread_log)
{
fclose((FILE*)thread_log);
}
void* thread_function(void* args)
{
char thread_log_filename[20];
FILE* thread_log;
sprintf(thread_log_filename,"thread%d.log",(int)pthread_self());
thread_log=fopen(thread_log_filename,"w");
pthread_setspecific(thread_log_key,thread_log);
write_to_thread_log("Thread starting.");
sleep(1);
return NULL;
}

int main()
{
int i;
pthread_t threads[5];
pthread_key_create(&thread_log_key,close_thread_log);
for(i=0;i

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用pthread_kill(thread_id,0);判断线程是否存在 竟然产生core,为什么?
  • java命名空间java.lang类thread的类成员方法: thread定义及介绍
  • gcc thread.c -o thread.c -lpthread
  • java命名空间java.lang类thread的类成员方法: max_priority定义及介绍
  • Python中多线程thread与threading的实现方法
  • java命名空间java.lang枚举thread.state的类成员方法: new定义及介绍
  • C#利用System.Threading.Thread.Sleep即时输出信息的详解
  • java命名空间java.lang枚举thread.state的类成员方法: terminated定义及介绍
  • 请教关于Thread类执行的问题
  • java命名空间java.lang类thread的类成员方法: getdefaultuncaughtexceptionhandler定义及介绍
  • [求助]请问一下关于Thread的问题
  • java命名空间java.lang类thread的类成员方法: getstate定义及介绍
  • 请问如何在程序中得到 main()Thread 的 Priority ??
  • java命名空间java.lang枚举thread.state的类成员方法: runnable定义及介绍
  • 关于GLib Thread Pool的使用问题
  • java命名空间java.lang枚举thread.state的类成员方法: timed_waiting定义及介绍
  • Java Thread
  • java命名空间java.lang枚举thread.state的类成员方法: waiting定义及介绍
  • 急!为什么我没有thread.h文件?
  • java命名空间java.lang.management类managementfactory的类成员方法: thread_mxbean_name定义及介绍
  • SCJP模拟题 about Thread
  • java命名空间java.lang类thread的类成员方法: run定义及介绍
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3