2012-06-11 33 views
1

是否有C.發送浮動過程之間的點值與管道用C

從一個子進程發送浮點值的父進程的標準方法我有一些計算,我想創建一個進程,然後讓孩子做一些忙碌的工作,父母做一些其他的事情,然後孩子將其值(雙打)發送回父母(大概是通過管道)。顯然,父母可以解析流,但我只是想知道是否有更清晰的方法?

+0

爲管道定義一些線路協議,然後實施它。 –

+0

可以遠程調用'標準'方法的唯一方法是將printf()放入管道的一端,並在接收端放置scanf()。逗號分隔符或換行符。並不真正達到解析的水平。分隔符上的拆分字段和換行符上的重置字段數。 – starbolin

+0

如果您要使用文本,請使用十六進制浮點數,而不是十進制。轉換它們要快得多,並且避免了所有可能導致往返程度有損的缺陷。 –

回答

6

如果您只是在同一臺計算機上的兩個進程之間發送它們,則無需花哨。在發送端:

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

而在接收端:

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

您應該檢查的write當然read的返回值。

+0

謝謝,這正是我所需要的。 – Alex