描述:客戶端同步調用服務端的名為svc的SERVICE,
參數:
*svc:SERVICE的名稱
char *idata: 輸入緩衝區的地址,客戶端傳給服務端的參數放在該緩衝區內
long ilen: 輸入緩衝區的長度——只有緩衝區類型為CARRAY時才指定長度,其他情況傳0
char **odata 輸出緩衝區的地址,服務端傳給客戶端的結果放在該緩衝區內
long *olen:輸出緩衝區的長度
long flags: 調用標誌,由以下幾個:
TPNOTRAN
如果調用svc的客戶端當前在transaction方式下,那么svc不參與當前的TRANSACTION。
TPNOCHANGE
如果服務端返回的緩衝區類型與客戶端定義的緩衝區(odata)類型不一致,默認情況下,odata會轉換成與服務端返回的緩衝區類型一致的類型,如果設定了該FLAG,那么當出現這種情況時,不進行緩衝區類型轉換,並且會保錯。
TPNOBLOCK
默認情況下, 如果客戶端有阻塞條件存在(如CLIENT的TCP/IP中的緩衝區滿,磁碟I/O忙等),那么客戶端會阻塞在那裡,直到阻塞消除或逾時出錯。如果設定了 TPNOBLOCK,當客戶端有阻塞條件存在時,TPCALL()會立刻返回並報錯. 注意TPNOBLOCK只對傳送請求時起作用,如果在接收服務端返回的結果時有阻塞條件存在,客戶端會在那裡等待,直到阻塞消除或逾時出錯
TPNOTIME
如果客戶端有阻塞條件存在,客戶端會一直阻塞在那裡,即使到了逾時時間也不返回,但如果該客戶端是在TRANSACTION模式下,當到了
事務的逾時時間,還是會報逾時錯誤並返回。
TPSIGRSTRT
如果在進行系統調用時,被信號中斷,該系統調用會重新進行。
調用成功返回0,失敗返回-1, 錯誤號保存在全局變數tperrno中。