Octave 音叉在八度音阶下不工作

Octave 音叉在八度音阶下不工作,octave,Octave,使用以前版本的octave,我正在运行 pid = fork(); 问题不多。现在,对于octave 4.2.1,我得到以下错误: error: fork: cannot be called from command line 系统信息: Ubuntu 16.10 Linux 4.8.0-54-generic#57 Ubuntu SMP Wed May 24 10:21:44 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux这是在2016年更改的,请参阅错误报告

使用以前版本的octave,我正在运行

pid = fork();
问题不多。现在,对于octave 4.2.1,我得到以下错误:

error: fork: cannot be called from command line
系统信息: Ubuntu 16.10
Linux 4.8.0-54-generic#57 Ubuntu SMP Wed May 24 10:21:44 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux这是在2016年更改的,请参阅错误报告和添加错误的更改日志:

您仍然可以在函数中使用fork:

function ret=ftest()
  [pid, msg]=fork();
  if (pid > 0)
    pid
    msg
  endif
  ret=0;

并用ftest()调用它。

这必须是新的,但有意义。分叉的全部意义在于存在后续代码,这些代码将根据其是父进程还是子进程而得到不同的处理,因此,允许在终端中键入这些代码可能会打乱您的会话是毫无意义的。嗯。。。我注意到RosettaCode.org中有matlab的条目和
system
的octave,但没有
fork
。应该吗?谢谢你@TasosPapastylianou。你所说的“被允许在终端上输入”是什么意思?不管怎样,我不是在终端上写的。
pid==fork()
是我的*.m脚本的一行@尼克,我不知道它是否在罗塞塔密码中。在任何情况下,@NickJ fork是一个八度音阶特征。Andrea:我同意禁止在脚本中使用它是不太有用的,但可能是不可避免的,因为无法区分通过终端或通过在顶层运行的脚本在顶层的使用。基本上,如果您使用fork,您需要在函数的上下文中执行它。如果您必须在顶层执行此操作,您可以通过运行现场匿名函数来欺骗octave,例如
(@()fork())()
,或者我可以恢复到octave的旧版本,而且速度更快!看,完全相同的代码在octave 3.8.1中完美地工作!