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

请问一下红色字体处的区别,及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