84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
最近遇到了一个问题,就是我想写一个程序,我可以启动它,在后台运行,该程序可以提供函数接口做一些操作。然后其它程序可以通过包含后台程序的头文件,使用后台程序的函数。
想了好久不知道,该怎么做。求各位帮助啊。
闭关修行中......
建議參考進程間通訊(RPC) 但是直接包含後台程式的頭文件,使用後台程式的函數,可能做不到
最簡單的做法是重定向標準輸入和標準輸出,透過它們來控制後台程式。
http://stackoverflow.com/questions/2680174/redirect-stdin-in-c-program-to-another-process
後台啟動的這個程式就是一個服務(一個常駐記憶體的進程,A),而後續寫的程式(稱為B程式)與A之間可以透過各種方式通訊; 而能夠通訊之後,A中的所有函數就可以隨便呼叫(當然,是透過雙方協商的協定呼叫); 如果需要直接對外暴露一個函數,其實,就是將這個函數發佈為一個服務供其它使用者使用;
將函數發佈成服務,一些中間件的服務就是這樣做的,例如Tuxedo;
進程間通訊的方式就多種多樣了, 例如,管道;共享記憶體、隊列等;參考《UNIX網路程式設計 卷2》進程間通訊:http://www.me115.com/book/129.html
或許,你的要求只是一個動態連結庫,將A的程式碼打包為一個動態函式庫, 暴露頭檔介面給B使用?這樣,就只有一個行程;
將目前後台程式和其他程式共用的部分抽離出來 做成動態函式庫
網路服務,soap
建議參考進程間通訊(RPC)
但是直接包含後台程式的頭文件,使用後台程式的函數,可能做不到
最簡單的做法是重定向標準輸入和標準輸出,透過它們來控制後台程式。
http://stackoverflow.com/questions/2680174/redirect-stdin-in-c-program-to-another-process
後台啟動的這個程式就是一個服務(一個常駐記憶體的進程,A),而後續寫的程式(稱為B程式)與A之間可以透過各種方式通訊;
而能夠通訊之後,A中的所有函數就可以隨便呼叫(當然,是透過雙方協商的協定呼叫);
如果需要直接對外暴露一個函數,其實,就是將這個函數發佈為一個服務供其它使用者使用;
將函數發佈成服務,一些中間件的服務就是這樣做的,例如Tuxedo;
進程間通訊的方式就多種多樣了,
例如,管道;共享記憶體、隊列等;參考《UNIX網路程式設計 卷2》進程間通訊:http://www.me115.com/book/129.html
或許,你的要求只是一個動態連結庫,將A的程式碼打包為一個動態函式庫,
暴露頭檔介面給B使用?這樣,就只有一個行程;
將目前後台程式和其他程式共用的部分抽離出來 做成動態函式庫
網路服務,soap