日期:2014-05-16  浏览次数:20622 次

请问一下红色字体处的区别,及pthread_self()和pthread_creat()函数第一个参数的区别?
#include <stdio.h>
#include <pthread.h>
#include <unistd.h> /*getpid()*/

void *create(void *arg)
{
    printf("New thread .... \n");
    printf("This thread's id is %u  \n", (unsigned int)pthread_self());    printf("The process pid is %d  \n",getpid());
    return (void *)0;


int main(int argc,char *argv[])
{
    pthread_t tid;
    int error;

    printf("Main thread is starting ... \n");

    error = pthread_create(&tid, NULL, create, NULL);

    printf("thread id is %d.\n", tid);    if(error)
    {
        printf("thread is not created ... \n");
        return -1;
    }
    printf("The main process's pid is %d  \n",getpid());
    sleep(1);
    return 0;
}
------解决方案--------------------
你使用的格式符不一样,一个是%u,一个是%d