Linux中和POSIX标准

Linux的API是遵循POSIX标准的

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945。

多线程

#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
 void *thread_function(void *arg) {
  int i;
  for ( i=0; i<20; i++) {
    printf("Thread says hi!\n");
    sleep(1);
  }
  return NULL;
}
int main(void) {
  pthread_t mythread;
   
  if ( pthread_create( &mythread, NULL, thread_function, NULL) ) {
    printf("error creating thread.");
    abort();
  }
  if ( pthread_join ( mythread, NULL ) ) {
    printf("error joining thread.");
    abort();
  }
  exit(0);
}

常见posix API如下

  • pthread_create():创建一个线程
  • pthread_exit():终止当前线程
  • pthread_cancel():中断另外一个线程的运行
  • pthread_join():阻塞当前的线程,直到另外一个线程运行结束
  • pthread_attr_init():初始化线程的属性
  • pthread_attr_setdetachstate():设置脱离状态的属性(决定这个线程在终止时是否可以被结合)
  • pthread_attr_getdetachstate():获取脱离状态的属性
  • pthread_attr_destroy():删除线程的属性
  • pthread_kill():向线程发送一个信号

如果你想让自己的代码在posix平台上保持兼容,请使用上述API。而不要使用linux特有的如clone这样的API。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux POSIX标准接口是指一组为了实现可移植性和互操作性而定义的接口和函数集合。其中,"POSIX"代表"可移植操作系统接口",它主要定义了操作系统的API,包括文件操作、线程管理、进程控制等方面的接口。 中提到的"Draft Standard for Information Technology—Portable Operating System Interface",也就是POSIX标准,规定了许多操作系统应该提供的接口和行为。这个标准的目的是为了使不同的操作系统能够在不同的硬件平台上进行软件开发和运行。 对于网络编程,我们可以使用POSIX标准接口中定义的函数来创建和管理网络连接。例如,中提到的connect函数用于建立TCP连接,并将客户端状态设置为SYN-SENT,而服务器在接收到第一次握手数据包时,会将自己的状态设置为SYN-RECV。而listen函数用于监听指定的套接字,它会将套接字设置为监听状态,并指定允许的等待队列长度。 另外,中提到了TCP连接的断开过程。当客户端发起关闭连接时,内核协议栈会向服务器发送一个FIN包,同时客户端进入FIN-WAIT1状态。服务器在收到FIN包后,会先发送一个ACK包作为回应,并进入CLOSE-WAIT状态。这是因为服务器可能还需要向客户端发送未发送完的数据,只有在数据发送完毕后才会进行关闭。这就解释了为什么会出现大量的CLOSE_WAIT和FIN_WAIT2状态。 总结来说,Linux POSIX标准接口提供了一套规范的API和函数,用于实现操作系统的可移植性和互操作性。在网络编程中,我们可以使用这些接口来创建和管理网络连接,并了解TCP连接的断开过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值