- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
最佳答案
任何不是 posix 标准的东西都可能是额外的系统调用,或者它可能是系统调用层之上的额外库功能。如果您的目标是编写可移植代码,请坚持使用 posix,并尽可能多地使用 c 库(而不是直接系统调用)。
如果您只是好奇,它们差异很大。为了符合 posix 标准,您不需要在系统调用方面提供太多支持。它指定了您需要支持的接口(interface),但是您是通过调用内核还是跳转到共享库来实现这一点完全取决于您。
Mac OS X 甚至不保证版本之间系统调用的二进制兼容性,他们认为它们是系统库和操作系统之间的私有(private)接口(interface)。大多数人认为的系统调用实际上是动态库中调用内核的小 stub ,如果您直接进行系统调用而不是链接到该动态库并调用 stub 函数,那么您的代码可能会在操作系统之间中断发布。
这种灵 active 意味着许多操作系统实现的系统调用与它们支持 posix 所需的系统调用完全不同,然后在它们的库中处理差异。例如,Linux 的线程实现基于名为 clone() 的系统调用,它们处理大量簿记工作以使 pthreads 接口(interface)在其库中工作。
因此,如果您的目标是实现一个标准库,该库不链接任何其他内容并且可以在多个 unix 上运行,那么在某些情况下您可能会发现事情有点棘手。如果您的目标是编写一些链接到各种 Unix 上的标准库的东西,您可以获得一个总体上统一的接口(interface)。
关于linux - 系统调用 : UNIX, Linux、BSD 和 Solaris 变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274700/
Solaris 中的“\t”或“\r\t”是制表符吗?换行字符序列\n 或\r\n ? 谢谢 最佳答案 \t = 制表符 \r = 回车 \n =换行 Solaris 标准行分隔符是\n 关于sola
我需要找出 Solaris 盒子的硬盘驱动器名称,但我不清楚设备名称是什么。在 Linux 上,它类似于 /dev/hda 或 /dev/sda,但在 Solaris 上,我对分区和设备的名称有点迷失
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我使用 mmap(只是尝试了解 mmap 的工作原理)来分配 96k 匿名内存,但看起来它将 96k 分成了 64k 和 32k。但是当分配960k时,它只分配一个大小为960k的chunk。什么时候
可用于 OpenSolaris 的源代码对于了解 Solaris 的内部结构(以及 dtrace 和 mdb)非常有用。然而,据我所知,没有办法准确地找出 OpenSolaris 源代码与作为 Sol
我在configure.ac中声明了一个变量: MY_VERSION="0:0:0" AC_SUBST(MY_VERSION) AC_MSG_NOTICE([$MY_VERSION]) 变量的值在./
我试过使用 /string1\|string2 没用。 尝试过 /字符串1|字符串2 没用。 有什么帮助吗? 最佳答案 您必须将“交替”放在\(...\) 的“分组”中。这应该有效: /\(strin
Solaris 中的某些命令(如 iostat)使用磁盘名称(如 sd0 或 sdd2)报告磁盘相关信息。是否有一致的方法将这些名称映射回标准/dev/dsk/c?t?d?s? Solaris 中的磁
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭11 年前。 Improve th
如何在solaris 11中生成UUID? 在 Solaris 10 中,我使用 makeuuid 命令生成。 我在 solaris 11 中找不到它,而它根据 oracle 文档存在 https:/
我正在将 Solaris 10 应用程序迁移到 RHEL。该应用程序使用某些特定于 Solaris 的函数,我在 Linux 上找不到等效函数。 void double_to_decimal(doub
在 Solaris 上,我似乎需要单引号 'a match the beginning of line' 表达式: > sh $ echo offset 0.000000 2>&1 | grep
我正在尝试运行一个旧的 Solaris SPARC 应用程序。 我从this question中学到了x86 Solaris 不会削减它。我最近了解到 VM virtualbox 不能模拟 SPARC
我正在将我们的应用程序从solaris sparc 移植到solaris x86,并且我遇到了这两种体系结构之间的结构大小差异。例如;我有一个类似的结构 typedef struct mystruct
在 linx CShell 上工作时,您可以选择按向上/向下箭头来选择最后键入的命令或命令缓冲区。这甚至适用于 Windows。 但是,在我最近切换到的 Solaris 上工作时,这不起作用。我猜 s
在 Solaris 上,我似乎需要单引号 'a match the beginning of line' 表达式: > sh $ echo offset 0.000000 2>&1 | grep
我正在尝试运行一个旧的 Solaris SPARC 应用程序。 我从this question中学到了x86 Solaris 不会削减它。我最近了解到 VM virtualbox 不能模拟 SPARC
Qt 页面没有列出用于 Solaris 的预编译 Qt 5 包。四处搜索,它似乎也没有包含在流行的软件包存储库 OpenCSW 中。一些谷歌搜索表明在 Solaris 下构建 Qt 5 涉及在 Sol
全部, 我们正在 WebLogic 服务器 9.2 MP2 上运行 J2EE 应用程序,并在 Solaris 10 上使用 jrockit 64 位 JVM (27.3.1)。 我们调用userunt
我正在尝试从 http://ftp.gnu.org/gnu/binutils 构建 binutils 2.21.1a在 Solaris sun4u sparc SunOS 5.10 上。我正在使用 g
我是一名优秀的程序员,十分优秀!