当前位置: 首页 > news >正文

厦门做网站的公司什么是优化师

厦门做网站的公司,什么是优化师,黑龙江建设网站,有建设银行信用卡怎么登陆不了网站1. 什么是 POSIX 参考链接–知乎 POSIX 标准包含了进程管理、文件管理、网络通信、线程和同步、信号处理等方面的功能。 这些接口定义了函数、数据类型和常量等,为开发者提供了一个可移植的方法来与操作系统进行交互。 2. 谁遵守这个标准 遵守 POSIX 标准的主要是…

1. 什么是 POSIX

参考链接–知乎

POSIX 标准包含了进程管理、文件管理、网络通信、线程和同步、信号处理等方面的功能。
这些接口定义了函数、数据类型和常量等,为开发者提供了一个可移植的方法来与操作系统进行交互。

2. 谁遵守这个标准

遵守 POSIX 标准的主要是 C 实现相关的程序,如操作系统或 C 标准库函数。

2.1 操作系统

操作系统利用 POISX 定义一组通用的 API,将底层操作系统的功能封装起来,从而提供了与具体操作系统无关的高级功能。
即操作系统的 POSIX API 是面向底层硬件的。旨在让用户开发应用程序更方便与硬件交互。

Unix 和 Linux、苹果的Mac OS X、win10 等等都存在 POSIX 标准的系统调用函数。

  • 利用 POSIX 函数开发程序示例:
    1. 利用 linux 下 POSIX 标准的进程管理相关函数做了一个程序
    2. 将该程序移植到另一个支持 POSIX 的系统上后(如移植到 WIN10),该程序可能不能正常运行
    3. 分析原因:实现了 POSIX 标准的各个操作系统都有相同的函数结构(结构,返回值等),可以通过 POSIX 标准去理解不同操作系统的同类函数,但命名可能不一样,但肯定存在功能相同的一个函数,需要调整后才能实现跨平台。

2.2 库函数

库函数也分为两类:

一类是 C 语言标准规定的库函数
一类是编译器特定的库函数。

(由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口)

库函数是语言或应用程序的一部分,而系统调用属于系统的一部分。

2.2.1 C 标准库函数

glibc 是 Linux 下使用的开源的标准 C 库,它是 GNU 发布的 libc 库,即运行时库。这些基本函数都是被标准化了的,而且这些函数通常都是用汇编直接实现的。
系统调用是为了方便使用操作系统的接口,而库函数则是为了人们编程的方便

  • 下图是 C 标准库函数和系统调用间的关系图
    在这里插入图片描述

    库函数调用与系统无关,不同的系统,调用库函数,库函数会调用不同的底层函数实现,因此可移植性好。

2.2.2 程序的可移植性实现

因为系统调用是最底层的,不太可能在这一层去实现可移植性, 故我们应该在代码层去实现。

  • 如 C语言标准库 glibc,该库封装屏蔽了调用操作系统 API 的细节,故程序的可移植性可以通过标准库这个中间层来实现。
    • 示例 1
      例如在我们的代码中下功夫。以下代码可以帮助我们实现各平台之间的可移植:
      #ifdef _WINDOWS_CreateThread();      //windows下线程的创建
      #elsePthread_create();    //Linux下线程的创建
      #endif
      
    • 示例 2
      对于头文件,也使用同样的预编译宏来实现。如:
      #ifndef _WINDOWS_#include <windows.h>
      #else#include <thread.h>
      #endif
      
    • 在编译的时候只要通过 #define 就可以选择在那个平台下完成程序的编译。

综上所述,我们都是将C,C++等各种语言当作中间层,以实现其一定程度上的可移植。如今,语言的跨平台的程序都是以这样的方式实现的。但是在不同的平台下,仍需要重新编译。

3. 库函数 和 系统调用间关系图

以 printf() 函数调用为例:
printf 函数执行过程中,程序运行状态切换如下:

用户态 –> 系统调用 –> 内核态 –> 返回用户态

在这里插入图片描述
实例代码如下:

#include <stdio.h>int main(int argc, char **argv)
{printf(yikoulinux);   return 0;
}   

编译执行

root@ubuntu:/home/peng/test# gcc 123.c -o run
root@ubuntu:/home/peng/test# strace ./run

注意:运行程序前加上 strace,可以追踪到函数库调用过程,得到结果如下图
在这里插入图片描述
如执行结果可知: 我们的程序虽然只有一个 printf 函数,但是在执行过程中,我们前后调用了 execve、access、open、fstat、mmap、brk、write 等系统调用。 其中 write 系统调用会把字符串:yikoulinux 通过设备文件 1,发送到驱动,该设备节点对应终端 stdout。

4. 遵循 POSIX 标准的好处

最大好处就是可以开发出可移植性强的程序(通常利用的是 C 语言标准库函数)。

http://www.khdw.cn/news/25454.html

相关文章:

  • 门户网站有哪些类型广东今天新闻最新消息
  • 个人网站设计论文ppt百度网登录入口
  • 房天下搜房网官网免费的关键词优化软件
  • 网站建设学习网怎么推广自己的微信
  • 太原云起时网站建设百度指数大数据分享平台
  • 贵德县wap网站建设公司企业网上的推广
  • 南京做网站外包梁水才seo优化专家
  • 怎么在百度做广告百度seo优化教程免费
  • 信息平台网站建设世界新闻
  • dede5.7网站搬家网店推广实训报告
  • 用h5开发的网站模板头条搜索是百度引擎吗
  • 如何做一家门户网站推广赚钱软件
  • 建一个网站是不是要开公司神秘网站
  • 微站和网站数据seo关键词挖掘
  • 2018年网站设计公司手游推广去哪里找客源
  • wordpress添加变量郑州网站制作选择乐云seo
  • 江苏省示范校建设专题网站教程seo推广排名网站
  • web前端是网站开发师吗上海抖音seo公司
  • 石家庄网站搭建公司网站内容优化关键词布局
  • 烽火台网站陕西企业网站建设
  • wordpress默认上传路径太原百度快速优化排名
  • 合肥中小企业网站制作每天4元代发广告
  • 服务器放网站吗西安做网站
  • 展示型网站建设价格百度贴吧官网首页
  • 机械类外贸网站建设郑州模板网站建设
  • 线上咨询预约网站建设方案谷歌浏览器下载官方正版
  • 摄影作品网站app十大排名优化网站的软件下载
  • 南昌大型网站制作怎么做网站推广多少钱
  • 海外广告投放渠道营销池州网站seo
  • 在哪家网站做推广好网站设计报价方案