Perl system() 调用会终止吗?

2024-04-10

Can a system()打电话可以永远die在 Perl 5 中?

(换句话说,为了 100% 防崩溃,执行以下操作的程序system() call, 是否需要将其包装成eval block,或者这是完全没有必要的?)


我在 中没有发现任何提及这种可能性的内容perldoc system http://perldoc.perl.org/functions/system.html,但也没有找到确切的“这个调用永远不会消失”。

注意:这里的问题是关于基本的 CORE Perl,不是autodie或任何其他具有类似效果的自定义模块。另外,假设没有ALRM信号已设置,或与此相关的任何其他自定义信号处理程序。

I'm assuming that all versions of Perl 5.* behave the same, but if not, an answer pertaining to 5.8 would be appreciated.


除非我对来源的解释不正确,否则这看起来是一种可能性:

来源:Perl 5.16.2(也检查了 5.8.8),文件:pp_sys.c,行:4224 内PP(pp_system)代码块:

if (n != sizeof(int))
  DIE(aTHX_ "panic: kid popen errno read, n=%u", n);

DIE is Perl_die(pTHX_ const* pat, ...)声明于util.c

根据文档,“panic: Kid popen errno read”意味着“forked child 返回了一条关于其 errno 的难以理解的消息”。

的解释panicPerl 中的消息 http://web.archiveorange.com/archive/v/L3SLVAzhhHs5w7ZUyhl7:

惯例是,当解释器因内部原因而死亡时 错误,消息开始“panic:”。从历史上看,有许多恐慌消息 是简洁的固定字符串,这意味着超出范围的值 那些引发恐慌的人都失去了。现在我们尝试报告这些值, 因为这样的恐慌可能无法重复,并且原始错误消息 当我们试图寻找原因时,这可能是我们得到的唯一诊断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Perl system() 调用会终止吗? 的相关文章

  • 催化剂控制器问题

    我刚刚在我的第一个大型项目中使用了催化剂 我想知道我是否按照预期的方式使用了催化剂 我有 Root pm 在该文件中我放置了多个 url 处理程序 每个 url 有一个控制器是最佳实践还是应该考虑分组 Catalyst 的优点之一是它的灵活
  • 在 Eval 中设置变量 (JavaScript)

    我正在编写一个 GreaseMonkey 脚本 使用 JQuery 并且我需要一些由原始页面中的脚本设置的变量 如下所示 我从另一个页面获取这个元素并尝试评估它 奇怪的是这不起作用 get link url null function da
  • Perl 调用带括号和不带括号的方法

    一些 Perl 书籍建议在调用类方法时使用括号 称这有助于使解析器不必猜测代码的意图 然而 我见过的几乎所有 Perl 代码 包括 cpan 上的模块 在调用不带参数的方法时很少使用括号 省略这些括号是正常的还是我应该总是输入它们 我编写了
  • 我应该选择哈希、对象还是数组来表示 Perl 中的数据实例?

    我一直想知道这个问题 但从未真正深入研究过 情况是这样的 我有一组比较大的数据实例 每个实例都有相同的集合或属性 例如 a child instance name age height weight hair color favorite
  • 如何解析 Perl 中的符号链接?

    我有一个象征性的名字java or jre or jre1 5 or jre1 6 or java1 5 or java1 6它将指向相应的目录 考虑到第一个实例 它看起来像 java gt usr java jdk1 5 x x 我的目标
  • 作为单独用户运行应用程序的最佳初始化脚本

    我有一个在用户帐户 基于 Plack 中运行的应用程序 并且需要一个初始化脚本 它看起来就像 sudo user start server 一样简单 我刚刚使用 start stop daemon 编写了一个 LSB 脚本 它确实很笨拙且冗
  • 如何在 Perl 中读取不断更新的文件?

    您好 我想通读一个文件 进入睡眠状态 然后检查是否有新记录写入该文件 如果是 我想处理记录 如果否 则返回睡眠并稍后再次检查 在永远循环中 我以为我可以做这样的事情 但是在它第一次读取文件之后 它似乎永远不会获取添加到文件中的新记录 ope
  • 已经使用严格时是否有必要使用警告?

    代码如下 use strict use warnings Is use warnings 这里有必要吗 是的 这是必要的 use strict and use warnings做不同的事情 来自strict模块的联机帮助页 strict P
  • Perl 错误,无法使用 Defined(@array)。我怎样才能解决这个问题?

    我收到此错误 gt 无法使用 已定义 array 也许您应该省略已定义 在这行代码上 if defined linkbot nroboton 我怎样才能解决这个问题 defined https perldoc pl functions de
  • 生成的 pdf 中的图像损坏了发送到服务器的 pdf

    我正在使用 jsPDF 在 Web 应用程序中创建 PDF 文档 将该文档发送到 Perl 并让 Perl 通过电子邮件发送它 效果很好 但是 当我将图像添加到 PDF 文档时 它不再起作用 因为 Adob e Reader 说该文件已损坏
  • 如何模拟客户端和服务器之间的套接字断开连接(在 Windows 上)?

    我已经实现了一种 心跳解决方案 我想看看在实际情况下网络 故障 时会发生什么 特别是当套接字上没有流量时发生这种情况 问题 我只有一台电脑 我在windows java上 我想简单地拔掉网线 停用网卡不会影响这两个进程 因为它们在同一个盒子
  • 在 Perl 中如何接受多个 TCP 连接?

    我对 Linux 的 Perl 脚本有疑问 它的主要目的是成为 3 个应用程序之间的中间人 它应该做什么 它应该能够等待 UDP 文本 不带空格 udp port 当它收到 UDP 文本时 它应该将其转发到连接的 TCP 客户端 问题是我的
  • 如何使用 Perl 检查文件的扩展名?

    对于我的 Perl 脚本 一个文件作为参数传递 该文件可以是 txt文件或一个 zip文件包含 txt file 我想编写看起来像这样的代码 if file is a zip unzip file file s zip txt 检查扩展的一
  • 在 R 中解析和评估字符串表达式的列?

    如何将 R 中的一列字符串表达式作为管道的一部分进行解析和求值 在下面的示例中 我生成了所需的列 evaluated 但我知道这不是正确的做法 我尝试采取 tidyverse 方法 但我只是很困惑 library tidyverse df
  • 匹配嵌套的html注释块正则表达式[重复]

    这个问题在这里已经有答案了 我有这个 html 代码块 some html content here top base some html content here 1 top some html content here 2 top so
  • 如何指定 Perl 的 Inline::Python 模块正在使用的 Python 版本?

    我正在运行 Debian squeeze 和 perl v5 10 1 并且安装了两个版本的 python pyversions i python2 5 python2 6 Python Inline显然使用python2 5 perl u
  • 同一个字符可以有 2 种不同的 UTF-8 编码吗?

    我正在编写一个应用程序 需要将其输入从 UTF 8 转码为 ISO 8859 1 Latin 1 一切正常 除了有时我会得到一些变音字符的奇怪编码 例如 带有 2 个点的拉丁语 1 E 0xEB 通常为 UTF 8 0xC3 0xAB 但有
  • 如何以 OO 风格打开管道?

    我用新风格重写了旧代码 如下所示 old style open FD file new style fh IO File gt new file r 文件没问题 但我不知道如何打开管道 read from pipes open PIPE s
  • 如何在 Perl 中将纪元时间转换为正常时间?

    我正在尝试编写一个 Perl 脚本来解析日志 其中每行的第二个值是日期 该脚本接受三个参数 输入日志文件 开始时间和结束时间 开始时间和结束时间用于解析出每行上位于这两个时间之间的特定值 但为了正确运行这个 我将开始和结束时间转换为纪元时间
  • 在 Ruby 中获取 system() 调用的输出

    如果我使用调用命令内核 系统 http ruby doc org core 2 2 0 Kernel html method i system在 Ruby 中 如何获取其输出 system ls 我想扩展和澄清混沌的答案 https sta

随机推荐

  • CF10-jpg的文件格式

    在开发一个允许交换多个第三方应用程序的图像并从而为这些应用程序创建单独的 皮肤 的工具时 我偶然发现了一种 jpg 格式 我似乎无法找到任何合适的信息 当在十六进制编辑器中查看它时 它以标签 CF10 开头 搜索互联网只提供了一个能够处理此
  • 如何在 WAI 服务器中执行关闭命令?

    我想为我的 web 应用程序实现一个 正常关闭 命令 与我的第一直觉相反 即只是要求人们终止该进程 我的前两次尝试包括 liftIO exitSuccess E yield responseLBS statusOK G contentTyp
  • 颜色生成功能

    让我们考虑以下场景 一个可以生成从白色到红色 从白色到蓝色 从白色到粉色 从白色到橙色等代码颜色的函数 颜色代码采用 RGB 格式 值从 0 到 255 有任何想法吗 您能给我伪代码或此类算法的链接吗 听起来你在追求线性插值 http en
  • MySQL 行格式:固定和动态之间的区别?

    MySQL 根据列数据类型将表的行格式指定为固定或动态 如果表具有可变长度列数据类型 例如 TEXT 或 VARCHAR 则行格式是动态的 否则 它是固定的 我的问题是 两种行格式有什么区别 其中一个比另一个更有效率吗 这种差异实际上只对
  • 如何将我的 WordPress 帖子分享到 Instagram [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有谁知道如何使用Instagram API将我的 WordPress 网站上的照片分享到我的 Instagram 帐户 根据Insta
  • Azure 数据工厂检查复制记录的行数

    我正在设计一个 ADF 管道 用于将 SQL 表中的行复制到 Azure Data Lake 中的文件夹 之后 SQL 中的行应该被删除 但是对于发生的删除操作 我想知道复制的行数是否与我在管道开头选择的行数相同 有没有办法获取复制操作的行
  • 具有多个 Oracle 客户端版本的 cx_Oracle

    我正在运行 Python 2 7 并在 Linux 64 位操作系统上使用 cx Oracle 我需要能够针对 11 2 或 12 1 Oracle 客户端运行 因为我无法确定哪个客户端将安装在部署的目标上 我知道有针对每个 Oracle
  • OSX 上的单调时钟

    CLOCK MONOTONIC似乎不可用 所以clock gettime已经出局了 我在一些地方读到 mach absolute time 可能是正确的方法 但在读到它是一个 cpu 相关值 后 它立即让我想知道它是否在下面使用 rtdsc
  • JPA Criteria api 通过嵌入式 ID 加入

    我有以下实体 Entity Table name place revision public class PoiRevision OneToMany mappedBy pk revision cascade CascadeType ALL
  • Django - 多个用户配置文件

    最初 我的 UserProfile 是这样开始的 from django db import models from django contrib auth models import User class UserProfile mode
  • 在 X-Editable 中通过 Ajax 提交数据

    我正在尝试使用 Ajax 提交数据X 可编辑 https vitalets github io x editable docs html并且在运行 url 参数中定义的 php 脚本时遇到问题 实际上 我从工作中得到了基本的例子 Html
  • 使用正则表达式解析 C 风格注释,避免回溯

    我想匹配 JavaScript 文件中的所有块注释和多行注释 这些是 C 风格注释 我有一个效果很好的模式 然而 它会产生一些回溯 从而显着减慢速度 尤其是在较大的文件上 图案 r n 例子 https www regex101 com r
  • 是否有像 numpy.clip(a, a_min, a_max) 这样的函数,其中 a_min 和 a_max 之外的值被包裹而不是饱和?

    对于给定的整数 numpy 数组 我可以使用 numpy clip a a min a max 将该数组中的值饱和到任意最小值和最大值 我想知道是否有一个 numpy 函数或技巧来执行此操作 以便它不会使值饱和 而是将它们包装起来 我知道
  • 编译 PortAudio 示例时出错

    我在 Ubuntu 上 我正在尝试运行 PortAudio 示例 但出现许多错误 如下所述 我已将头文件portaudio h放在程序的目录中 我对此一无所知 我认为这是链接器错误 请帮忙 tmp cc5EbTlT o 功能中main pa
  • 在文本框中显示格式化的 xml

    我一直在寻找一种在文本框中显示格式化 xml 的方法 到目前为止我发现的所有内容都指向从文件中读取 xml 并对其进行格式化 但是我想显示保存在数据库字段中的 xml 这个想法是 用户将记录返回到 gridview gridview 将显示
  • 浏览图像文件并将其显示在 kivy 窗口中

    我是 Kivy 的初学者 尝试使用 kivy fileChooser 浏览图像文件 然后将其显示在窗口上 下面你找到了我的代码 但它无法完成任务 它只是在控制台上显示 PNG 请和我一起检查一下 import kivy from kivy
  • 类型错误:MiniCssExtractPlugin 不是构造函数

    webpack cli TypeError MiniCssExtractPlugin is not a constructor at module exports home andrey smartadmin app webpack con
  • react-native-video [android] undefined 不是一个对象(评估 NativeModuels.UIManager.RCTVideo.Constants')

    我将 React Native 集成到现有的 Android 应用程序中 我尝试使用 React Native Video 组件在应用程序上显示视频 反应本机 0 42 0 反应本机视频 1 0 0 我按照这里的说明进行操作 https g
  • 来自 Google/Bing 的具有自动完成功能的自定义框。有没有办法读取接收到的json文件?

    我尝试构建一个带有搜索框的网页 我想从 Bing 获取自动完成选项 例如 可以通过以下方式从 bing 获取自动完成功能 http api bing com osjson aspx query YOUR QUERY http api bin
  • Perl system() 调用会终止吗?

    Can a system 打电话可以永远die在 Perl 5 中 换句话说 为了 100 防崩溃 执行以下操作的程序system call 是否需要将其包装成eval block 或者这是完全没有必要的 我在 中没有发现任何提及这种可能性