【问题标题】:Sending floating point values between processes with pipes in C在 C 中使用管道在进程之间发送浮点值
【发布时间】:2012-06-14 20:24:02
【问题描述】:

在 C 语言中是否有一种标准方法可以将浮点值从子进程发送到父进程。

我有一些计算,我想分叉一个进程,然后让孩子做一些忙碌的工作,让父母做其他事情,然后孩子将其值(是双精度值)发送回父母(大概是通过管道)。显然父母可以解析流,但我只是想知道是否有更清洁的方法?

【问题讨论】:

  • 为管道定义一些有线协议,然后实现它。
  • 唯一可以远程称为“标准”方式的方法是将 printf() 在一端打印到管道中,然后在接收端 scanf()。逗号分隔或换行符。并没有真正上升到解析的水平。在分隔符上拆分字段并在换行符上重置字段计数。
  • 如果要使用文本,请使用十六进制浮点数,而不是十进制。转换它们的速度要快得多,并且您可以避免所有可能导致往返有损的陷阱。

标签: c ipc fork


【解决方案1】:

如果您只是在同一台机器上的两个进程之间发送它们,则无需花哨。在发送方:

double my_float;
write(fd, &my_float, sizeof(myfloat));

在接收方:

double my_float;
read(fd, &my_float, sizeof(my_float));

您当然应该检查writeread 的返回值。

【讨论】:

  • 谢谢,这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多