`
mryufeng
  • 浏览: 977649 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

erlang内置的port相关的驱动程序

阅读更多
erlang能够利用多核心的优势不仅体现在多线程的smp调度器,更在port上面上体现。通过执行外部程序,接管它的输入输出, 实现了安全性和充分利用cpu计算资源。

erlang的io设计体现了unix一切以文件为中心的思想。在port设计上也是.这3个驱动程序都是把相关的东西转化成文件句柄,登记到poll上面,利用强大的IO poll来实现上层语义的整合。


ErlDrvEntry spawn_driver_entry;


{spawn, Command}
    Starts an external program. Command is the name of the external program which will be run. Command runs outside the Erlang work space unless an Erlang driver with the name Command is found. If found, that driver will be started. A driver runs in the Erlang workspace, which means that it is linked with the Erlang runtime system.
    When starting external programs on Solaris, the system call vfork is used in preference to fork for performance reasons, although it has a history of being less robust. If there are problems with using vfork, setting the environment variable ERL_NO_VFORK to any value will cause fork to be used instead.

ErlDrvEntry fd_driver_entry;

{fd, In, Out}
    Allows an Erlang process to access any currently opened file descriptors used by Erlang. The file descriptor In can be used for standard input, and the file descriptor Out for standard output. It is only used for various servers in the Erlang operating system (shell and user). Hence, its use is very limited.

ErlDrvEntry vanilla_driver_entry;

官方没有文档。它的作用是直接打开文件进行读写。
2
0
分享到:
评论
1 楼 mryufeng 2009-04-19  
5.21 ...write to standard error (stderr) on a unix system?

The simplest approach is to just open file descriptor two:

            P = open_port({fd,0,2}, [out]),
            port_command(P, "this text goes to stderr\n").
   

相关推荐

    erlang port driver test

    在 Erlang 中,Port Driver 是一种机制,允许 Erlang 进程与外部 C 库或者其他语言编写的程序进行通信。Port Driver 提供了一种方式,使得 Erlang 系统能够与外部世界交互,执行低级别的I/O操作或调用非Erlang代码...

    erlang程序设计相关例子程序

    在提供的文件列表中,我们可以看到一系列与Erlang编程相关的`.beam`文件,这些都是编译后Erlang模块的二进制表示。下面我们将详细探讨这些文件可能涉及的Erlang知识点。 1. **lib_misc.beam** - 这个文件可能包含...

    Erlang程序设计(第2版)1

    【Erlang程序设计(第2版)】是由Erlang之父Joe Armstrong撰写的一本经典著作,专注于介绍Erlang编程语言在并发、分布式和容错系统中的应用。本书适用于初学者和有一定经验的Erlang程序员。作者在书中讨论了如何利用...

    Erlang并发编程,Erlang程序设计,Erlang中文手册

    Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。  Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此...

    erlang -c语言程序接口.pdf

    在Erlang中,与C语言程序进行通信通常是通过端口(Port)机制来实现的。端口是Erlang提供的一种特殊机制,用于实现与外部程序的交互。下面详细介绍端口机制的工作原理: 1. **端口的创建** ```erlang YourPort = ...

    erlang程序设计与入门

    **Erlang程序设计与入门** Erlang是一种并发、函数式编程语言,主要用于构建分布式、高可用性、容错性强的系统。它的设计灵感来源于电信行业的需求,由瑞典爱立信公司于1986年开发。Erlang以其独特的并发模型、轻量...

    mongodb-erlang:Erlang的MongoDB驱动程序

    `mongodb-erlang`是一个用于Erlang环境的MongoDB驱动程序,它允许Erlang应用程序与MongoDB数据库进行交互,提供了丰富的接口来执行各种数据库操作。 一、MongoDB-Erlang驱动程序介绍 `mongodb-erlang`驱动是Erlang...

    Erlang程序设计(第二版)及源码

    书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、ETS和DETS等主题。...

    jamdb_oracle:适用于Erlang的Oracle数据库驱动程序

    适用于Oracle数据库的Erlang驱动程序和Ecto适配器 特征 使用准备好的语句功能。 使用绑定变量。 调用存储过程。 调用存储的函数。 使用游标变量。 使用返回子句。 更新批处理。 行预取。 入门 % % Set ...

    Erlang程序设计,包含完整目录和全套源码

    Erlang的高性能主要体现在其内置的并发机制和错误恢复机制上。由于Erlang运行在BEAM虚拟机上,该虚拟机优化了并发执行和垃圾回收,使得系统在处理高负载时仍能保持稳定。此外,Erlang的"let it crash"哲学鼓励程序在...

    ErlSybase:用于 erlang 的 Sybase nif 驱动程序

    用于 erlang 的 Sybase nif 驱动程序从重写 用法 0.运行二郎erl ebin/ deps/*/ebin % %Start driver 1 > sybdrv : start ([]) % %Execute query with params 2 > sybdrv : execQueryWithArgs ( testdb , " select ...

    Erlang程序设计中文版

    **Erlang程序设计中文版**是一本深入探讨Erlang编程语言的书籍,旨在帮助开发者理解和掌握这种在并发处理和分布式系统中广泛使用的语言。Erlang以其强大的错误恢复能力、热代码替换以及对大规模并发的支持而闻名,是...

    [Erlang程序设计]源代码

    **Erlang程序设计源代码详解** Erlang是一种面向并发、函数式编程语言,尤其在分布式系统和高可用性领域表现出色。本资源包含了《Erlang程序设计》一书的所有实例代码,旨在帮助读者深入理解Erlang语言的核心特性和...

    Erlang程序设计及源码

    本资源包含了一本Erlang程序设计的入门经典书籍及其配套源码,适合初学者深入理解Erlang编程。 1. **Erlang简介** Erlang以其强大的并发处理能力而闻名,它采用了轻量级进程模型,使得在单个系统中可以同时运行...

    erlang 程序设计 源码

    9. **网络编程**:Erlang天生适合网络编程,因为其内置了对TCP、UDP等协议的支持,可以轻松创建分布式系统。 10. **并行性与分布式**:Erlang节点可以相互通信,形成分布式集群,这使得构建大规模分布式系统变得...

    Erlang程序设计 第2版

    Erlang程序设计 第2版 Erlang程序设计 第2版Erlang程序设计 第2版

    erlang的mysql驱动接口

    连接MySQL服务器后,Erlang程序可以通过发送消息到对应的Erlang进程来执行SQL命令。当不再需要连接时,应关闭连接以释放资源。`dizzyd-erlang-mysql-driver` 提供了连接管理和断开连接的函数,确保了连接的生命周期...

    erlangB计算器

    在MATLAB中实现Erlang B计算器,可以利用其内置的数学函数和循环结构,将Erlang B公式转化为可执行的代码。Erlang B公式为: \[ B(N, \lambda) = \frac{\lambda N}{N + \lambda} \] 其中,N表示服务通道数,λ表示...

    pgsql:Erlang PostgreSQL驱动程序

    pgsql是Erlang编程语言中用于连接和操作PostgreSQL数据库的驱动程序。Erlang是一种功能强大的并发性编程语言,以其在分布式系统和高可用性应用程序中的出色性能而闻名。PostgreSQL则是一种开源的关系型数据库管理...

Global site tag (gtag.js) - Google Analytics