我最近偶然發現了一個服務程序,其中* inlr = * on在顯式關閉文件後使用(代碼如下)。這對我來說感覺相當過分。從我發現的是處理資源釋放的rpg循環。因此,如果沒有循環(即在主要/無主要h規格的程序中),* inlr = *就沒有辦法產生任何效果,但是...我一直未能找到任何確認,週期相關的問題對我來說是非常新的我可能會錯過一些東西...在非循環程序中設置* inlr是否有效?
if %open(file);
close file;
endif;
*inlr = *on;
return *on;
將* inlr = *取消,甚至不會對性能產生可衡量的變化。你將會遇到更多這樣的問題,讓他們單獨放置,以免在更改服務程序的簽名時更改服務程序的簽名,並且每個調用服務程序的程序都會中斷。 – danny117
'* inlr'不會更改服務程序的簽名。改變這種情況的唯一方法是改變出口。即使改變參數也不能改變服務程序的簽名,除非你的意思與binder源生成的簽名不同。 – jmarkmurphy