get_robust_list() - Unix,Linux系統呼叫 - 技術教學
Tutorials Point


  Unix入門
  Unix Shell程式設計
  高階Unix
  Unix有用參考
  Unix有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考資料     討論論壇     關於TP  

get_robust_list() - Unix,Linux系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

get_robust_list, set_robust_list - 獲取/設定健壯futex列表

概要

#include <linux/futex.h> 
#include <syscall.h> 

long get_robust_list(int pid, struct robust_list_head **head_ptr,                          size_t * long set_robust_list(struct robust_list_head *head, size_t len);

描述

健壯futex實現需要維護每個執行緒的健壯futex列表,這些列表線上程退出時解鎖。這些列表在使用者空間管理,核心只會被通知列表頭的地址。

get_robust_list 返回由pid引數定義的執行緒的健壯futex列表的頭。如果pid為0,則返回的頭屬於當前執行緒。head_ptr是指向健壯futex列表頭的指標。get_robust_list函式將列表頭的地址儲存在此處。len_ptr是指向長度變數的指標。get_robust_list在此處儲存sizeof(**head_ptr)

set_robust_list 將當前執行緒擁有的健壯futex列表的頭設定為headlen*head的大小。

返回值

當操作成功時,set_robust_listget_robust_list函式返回零,否則返回錯誤程式碼。

錯誤

如果len值與核心期望的struct robust_list_head結構的大小不匹配,則set_robust_list函式將失敗並返回EINVAL

如果當前程序沒有許可權檢視TID為pid的執行緒的健壯futex列表,則get_robust_list函式將失敗並返回EPERM;如果TID為pid的執行緒不存在,則返回ESRCH;如果無法將健壯futex列表的頭儲存在head引數指定的記憶體空間中,則返回EFAULT

應用程式用法

一個執行緒只能有一個健壯futex列表;因此,希望使用此功能的應用程式應該使用glibc提供的健壯互斥鎖。

此係統呼叫僅用於除錯目的,正常操作不需要。

這兩個系統呼叫都不能作為函式提供給應用程式程式;它們可以使用syscall(3)函式呼叫。

參見



previous next Printer Friendly

廣告


  

廣告



廣告