当前位置:嗨网首页>书籍在线阅读

12-练习

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

31.6 练习

31-1.  试实现函数one_time_init(control,init),要求与函数pthread_once()执行等同操作。参数control应为一指针,指向经静态分配的结构,其中包含一个布尔型变量和一个互斥量。布尔型变量用以标识函数 init 是否曾被调用过,而由互斥量来控制对变量的访问。为简化函数实现,可以忽略诸如init()调用失败或者在由线程初次调用时被取消的情况(亦即,无需为此做特别设计,如果真发生了此类事件,那么下一个调用one_time_init()的线程会重新调用init())。

31-2.  使用线程特有数据重新实现线程安全版的函数 dirname()和 basename()(18.14节)。