Linux C語言庫函數參考 — nice

來源:互聯網
上載者:User

ps -o nice,comm

 

 

【函 數 名】nice — 調整進程啟動並執行優先順序

【函數原型】int nice(int inc);

【相關標頭檔】unistd.h

【函數說明】

在Linux中,進程啟動並執行優先順序分為-20~19等40個層級,其中,數值越小運行優先順序越高,數值越大運行優先順序越低。顯而易見,優先順序 -20的運行優先順序最高,優先順序19的運行優先順序最低。函數nice是將當前進程啟動並執行優先順序增加指定值,既用當前進程啟動並執行優先順序加上指定值得到新的優先順序,然後用新的優先順序運行該進程。當計算出來的值小於-20,則進程將以優先順序-20運行;當計算出來的值大於19,則進程將以優先順序19運行。若增加正值,則表示降低進程運行優先順序;若增加負值,則表示升高進程運行優先順序。但只有具有超級使用者權限的使用者才可以以負數作為函數的參數,否則該函數將返回錯誤。

【參數說明】

inc [IN] 指定優先順序增加的值

【函數傳回值】

若操作成功,函數將返回調整後的進程啟動並執行優先順序;

若操作失敗,函數將返回-1。

注意:當函數返回-1時,不一定就是函數操作失敗。因為若函數成功調整進程運行優先順序後的優先順序為-1,函數也返回-1,所以在判斷函數是否操作失敗時,除了判斷函數返回的值是否為-1外,還需要查看 errno的值是否為相關錯誤碼,詳見“程式樣本”。

【相關錯誤碼】

EACCES 無操作許可權,既非超級使用者權限的使用者用負值作為參數調用該函數。

【程式樣本】

1. #include <stdio.h> /* printf */
2. #include <stdlib.h> /* atoi, system, exit */
3. #include <errno.h> /* errno */
4. #include <string.h> /* strerror */
5. #include <unistd.h> /* nice */
6.
7. int main(int argc, char *argv[])
8. {
9. int adjustment = 0;
10. int ret;
11. if ( argc > 1 ) {
12. adjustment = atoi( argv[1] );
13. }
14. ret = nice( adjustment );
15. printf( "nice(%d):%d/n", adjustment, ret );
16. if ( -1 == ret ) {
17. if ( errno == EACCES ) {
18. printf( "Cannot set priority:%s./n", strerror( errno ) );
19. exit(-1);
20. }
21. }
22. system("nice");
23. exit(0);
24. }

參考文獻:

[1] Linux man pages

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.