您的位置:首页 > 其它

POSIX标准

2020-02-02 17:21 197 查看

1、什么是POSIX标准

它基本上是Portable Operating System Interface(可移植操作系统接口)的缩写,而X则表明其对Unix API的传承。POSIX标准定义了操作系统(很多时候针对的是类Unix操作系统)应该为应用程序提供的接口标准,从而保证了应用程序在源码层次的可移植性。如今主流的Linux系统都做到了兼容POSIX标准。

POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。

简单总结:

完成同一功能,不同内核提供的系统调用(也就是一个函数)是不同的,兼容POSIX标准的操作系统可以提供相同的API来解决这个问题。例如创建进程,linux下是fork函数,windows下是creatprocess函数。好,我现在在linux下写一个程序,用到fork函数,那么这个程序该怎么往windows上移植?我需要把源代码里的fork通通改成creatprocess,然后重新编译...

posix标准的出现就是为了解决这个问题。linux和windows都要实现基本的posix标准,linux把fork函数封装成posix_fork(随便说的),windows把creatprocess函数也封装成posix_fork,都声明在unistd.h里。这样,程序员编写普通应用时候,只用包含unistd.h,调用posix_fork函数,程序就在源代码级别可移植了。

2、POSIX标准的C/C++库

C/C++的标准库是指ANSI C/C++定义的标准库,这个是构成标准C/C++语言的基础。简称libc/libc++,常见的libc/libc++的实现有:UNIX C/C++,GUN C/C++,MicroSoft Visual C/C++

在标准C/C++库基础上,兼容POSIX协议的C/C++库就是POSIX标准的C/C++库,这些C/C++库可以直接操作符合POSIX标准的操作系统调用。

常见的POSIX标准C/C++库:

2.1 BSD,这个库是AOSP使用的标准C库。

2.2 Bionic,这个是BSD的衍生库,用于NDK开发

2.3 UNIX C/C++,GUN C/C++,MicroSoft Visual C/C++

 

本文链接:

1)https://www.geek-share.com/detail/2713423290.html

2)https://blog.csdn.net/weixin_40039738/article/details/81867577

3)https://www.cnblogs.com/1130136248wlxk/articles/5308863.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
IotJuZiPi 发布了18 篇原创文章 · 获赞 0 · 访问量 1237 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: