ruby调用C++ 进程间通信的问题
两个进程用共享内存通信,用信号量同步,写的进程写完共享内存后post信号量,读进程wait到继续运行程序。
每个进程读取的共享内存由自己建立,写入到对方建立的共享内存中。
两个进程都以C++形式通信完全正常,将其中一个进程的C++代码编译为ruby可调用的库,用ruby启动时,通信就出现问题。
从ruby进程侧向C++进程发送数据正常,但从C++进程向ruby进程发送数据时,post的信号量ruby侧wait不到。
从现象来分析,似乎是ruby进程建立的信号量有问题,但是没有分析出问题的原因。
[解决办法]
高级了,真的不懂。
[解决办法]
book = Spreadsheet.open "#{::Rails.root}/public/sheet/old.xls"
sheet = book.worksheet 0
sheet[10,10] = 5 --问题是当注释掉这行的时候,old.xls 相当于复制到了new.xls中,但是当不注释的时候
new.xls中就只有5这一个数据,old.xls里面原来的数据就没有了。
book.write "#{::Rails.root}/public/sheet/new.xls"
这种情况是怎么回事呀!!!!!我真的哭了,研究几天了...
[解决办法]