fork和execl呼叫另乙個c程式

2021-09-24 13:27:01 字數 1036 閱讀 5742

exec的幾個函式是類似的,這裡只討論execl。

execl()函式宣告如下:

extern int execl(_const char *_path,const char *_ar**,…,null)

簡單解釋:函式execl()返回值定義為整形,如果執行成功將不返回!執行失敗返回-1。

引數列表中char *_path為所要執行的檔案的絕對路徑,從第二個引數ar**開始為執行新的檔案所需的引數,最後乙個引數必須是空指標(一般用null代替)。

1、用fork建立子程序,子程序中呼叫另乙個c程式

exectest.c

#include#include#include#include#includeint main(int argc,char *ar**)

else if(pid == 0)

}else

return 0;

}

2、被呼叫的c程式,該程式接受乙個execl傳來的引數n,並計算1到n的累加和,計算程式執行時間,以及輸出程式的程序號。

其中clocks_per_sec是個常量,表示每秒的打點數。

test.c

#include#include#include#includeint main(int argc,char *ar**)

printf("1到n的累加和=%d\n",sum);

printf("程式的程序號=%d\n",pid);

stop = clock();

time = (double)(stop - start)/clocks_per_sec; //計算程式的執行時間

printf("程式執行時間=%lf\n",time);

return 0;

}先將兩個c程式編譯鏈結成可執行檔案

執行結果

呼叫另乙個Activity

1 建立主activity 注意通過權重來分配尺寸的方式 元件1 android layout width 0dp android layout weight 1 元件2 android layout width wrap content 2 在主類中指定onclick所對應的sendmessage...

iOS 呼叫另乙個程式

在 ios 裡,程式之間都是相互隔離,目前並沒有乙個有效的方式來做程式間通訊,幸好 ios 程式可以很方便的註冊自己的 url scheme,這樣就可以通過開啟特定 url 的方式來傳遞引數給另外乙個程式。例如在 ipad 上瀏覽網頁,並且 ipad 已經安裝了 hd,那麼就開啟下面這個鏈結就會在 ...

乙個Ejb呼叫另乙個Ejb

乙個ejb呼叫另乙個ejb有兩種方法 第一是同個jndi 查詢 initialcontext ctx new initialcontext ihelloword helloworld ihelloword ctx.lookup helloworld remote 第二種 通過依賴注入 1 ejb i...