`
chenqi210
  • 浏览: 79780 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

pthread_rwlock_t 未定义的问题

    博客分类:
  • c
  • c++
 
阅读更多

最近在linux上次编译时出现pthread_rwlock_t没有定义的现象.但是已经include了pthread.h,网上查了一些资料后发现,原因竟然是因为显示使用了-std=c99参数导致.

 

在c99没有完全实现时,如果不显示指定-std, 则gcc默认使用gnu89(或gnu90)标准.

一般而言,

               gnuXX标准 = cXX标准 + GNU extension

 

而pthread_rwlock_t正好就是GNU extension的一部分. 所以指定使用c99就会把GNU extension禁用,造成pthread_rwlock_t未定义的问题.

 

解决方法就是:

方法一: 把-std=c99去掉,

方法二: 或者改成-std=gnu89, -std=gnu90, -std=gnu99 这类

 

 

 

          

分享到:
评论

相关推荐

    Linux多线程编程手册

    3. 读写锁(Read-Write Locks):`pthread_rwlock_t`允许多个读取者同时访问资源,但写入者具有独占性。`pthread_rwlock_init()`初始化,`pthread_rwlock_rdlock()`和`pthread_rwlock_wrlock()`进行读写锁定,`...

    POSIX线程程序设计

    它需要传入一个线程标识符(pthread_t类型)、线程属性(pthread_attr_t类型,可选)、回调函数(线程运行的主体)以及回调函数的参数。例如: ```c pthread_t new_thread; int ret = pthread_create(&new_thread, ...

    Linux多线程Linux多线程

    `pthread_rwlock_init()`初始化读写锁,`pthread_rwlock_rdlock()`和`pthread_rwlock_wrlock()`进行读写锁定,`pthread_rwlock_unlock()`解锁。 5. **线程的通信**: - **线程间信号量(Semaphores)**:用于线程...

    pthread-prebuilt-dll-2-9-1-release

    4. **线程同步**:pthread库提供了多种同步机制,如互斥锁(`pthread_mutex_t`)、条件变量(`pthread_cond_t`)、读写锁(`pthread_rwlock_t`)等,用于避免线程间的竞态条件,保证数据一致性。 5. **线程通信**:...

    学习笔记多线程Unix编程

    常见的同步方法包括互斥锁(`pthread_mutex_t`)、条件变量(`pthread_cond_t`)、读写锁(`pthread_rwlock_t`)和信号量(`sem_t`)。互斥锁用于保护临界区,条件变量用于线程间的协调,读写锁允许多个读取者同时...

    C语言Threads等程序(Use P-threads)

    在P-threads中,有互斥锁(`pthread_mutex_t`)和读写锁(`pthread_rwlock_t`)。互斥锁保证同一时间只有一个线程访问资源,而读写锁允许多个读取者同时访问,但在写入时会独占资源。 6. **信号量(Semaphore)**: ...

    linux下的多线程例子

    7. `pthread_rwlock_*`:读写锁,允许多个读线程同时访问,写线程独占访问。 三、多线程编程的关键问题 1. 竞态条件:当多个线程同时访问并修改同一数据时,可能会出现未定义的行为。解决方法是使用互斥锁或其他...

Global site tag (gtag.js) - Google Analytics