名前のスレッドにはprctl付き

prctl

テスト名:   prctlコマンド

システムコール数:   172

システムコール名:   prctlコマンド   (男性)

ファイル名:   prctl.txt(1225バイト)

*説明* * * 

int型はprctl(オプションのint、unsigned long型ARG2、ARG3符号なしの長い、長いARG4符号なし、符号なしロング引数5)



コール命令このシステムは明確な選択肢を開発するためのプロセスのために設計されているオプションによって異なります。



	PR_GET_PDEATHSIG:返却処理信号; 



	PR_SET_PDEATHSIG:ARG2は、その名前が示すように、信号プロセッサpdea​​thとして入力され、親プロセス場合は、この信号の受信処理を再利用することができません。



	PR_GET_DUMPABLEは:ダンプ可能プロセッサフラグを返し、



	PR_SET_DUMPABLE:ARG2プロセッサフラグダンプ可能として入力されます。



	PR_GET_NAMEは:パラメータはarg2で指定プロセスに呼び出したプロセスの名前を返します。(Linuxでは2.6.9以降)



	PR_SET_NAME:多くの場合、呼び出し元のプロセスを名前として引数arg2に。(Linuxの2.6.11以降)



	:PR_GET_TIMING 



	PR_SET_TIMING:決意と従来のプロセスタイミングモード有効にするための修正処理タイミングモード



        PR_TIMING_STATISTICALかを、またはタイムスタンプベースのプロセスタイミングモード有効にする



        PR_TIMING_TIMESTAMPを。




         CAP_CHOWN機能:

                    _POSIX_CHOWN_RESTRICTEDで定義されたシステム機能。これは、ファイルシステムのアクセス権とグループ所有者の上にすべてを変更します



         CAP_DAC_OVERRIED機能:

                     _POSIX_ACLが定義されている場合、すべてのDAC間で除外するCAP_LINUX_IMMUTABLE機能で、アクセスACLの実行を含む、アクセスする

                     DACアクセス



         CAP_DAC_READ_SEARCH機能:

                     もし_POSIX_ACL定義は、すべてのDACの制限を越え読み込みますが、

                     そしてすべてでACLの制限を含むファイルやディレクトリ検索、。アクセス制限するCAP_LINUX_IMMUTABLEとDAC 



         CAP_FOWNER機能を:

                      交差した文書は、ファイルの所有者のIDやユーザIDなどの一部の許容限度は、利用可能CAP_FSETID除いて、同じでなければならないと言います。これは、MACとDAC制限交差しない



         :CAP_FSETID機能を

                        S_ISUIDファイルとS_ISGIDビットを設定するとき、交差ユーザIDは、所有者のIDと一致している必要があり、グループIDの場合限界はS-ISGID位置を設定

                     IDの所有者でなければなりません機能制限およびS_ISGIDへのchown S_ISUIDによって設定された制限と一致



         CAP_FS_MASK機能:

                suserの()またはfsuser()への応答として。



          CAP_KILLの特徴:

                  あなたは、信号処理機能の有効なユーザーIDが交差する送信するときに有効なユーザーIDと一致している必要があり



           CAP_SETGIDケーパビリティ機能を:

                     setgroupsをする(可能にsetgidを()関数ができます)

                     でソケットに偽造GIDを許可



          CAP_SETUIDケーパビリティ機能:

                      許可セット* UID()関数は、偽造することができますPIDソケットに



          CAP_SETPCAP特徴:

                       すべてのPIDへのすべてのライセンスを。またはすべてのライセンスの削除



           CAP_LINUX_IMMUTABLE機能:

                      S_IMMUTABLEとS_APPENDファイルの属性を変更することができます



           :CAP_NET_BIND_SERVICEの機能を

                      TCP 1024 / UDPソケットの下に結合できるよう



           CAP_NET_BROADCAST機能:

                      可能にブロードキャスト、マルチキャストリスナー



           CAP_NET_ADMIN機能は:

                      あなたがインターフェイスを設定することができます

                          IP IPマスカレードファイアウォールの管理を可能にし、アカウントを

                          設定し、ソケットのデバッグオプションにあなたを可能にする

                          あなたは、ルーティングテーブルを変更することができます

                          のソケット構成プロセスのプロパティのセットができます

                          透過プロキシを可能にバインドすべてのアドレスは、

                          TOS(サービスの種類)を設定することができます

                          あなたが無差別モードを設定することを可能にする

                          明確な状態にドライバーができます

                          許可証をマルチキャストは、

                          読み取るためのシステム又は書き込みが記録可能



            CAP_NET_RAWを特徴

                           RAWソケットが可能

                           パケットとソケット可能



            CAP_IPC_LOCK機能:

                           ロックレバー共有メモリセグメントを可能にする

                            MLOCKとmlockallを可能にします



            CAP_IPC_OWNER機能:

                            交差IPC所有権をチェックし



             CAP_SYS_MODULE機能:

                             挿入または削除カーネルモジュール



              CAP_SYS_RAWIO特徴:

                             はioperm / IOPLと/ dev /アクセスPROTである許可

                              の/ dev / MEMと/ dev / kmemのアクセスを許可

                              できるアクセスブロックデバイス(の/ dev / [SH ] D ??)



             CAP_SYS_CHROOT機能:

                                chrootの()ことができます



              CAP_SYS_PTRACE機能を:

                               任意のプロセスののptrace()できます



               CAP_SYS_PACCTケーパビリティ機能:

                               アカウンティングを設定プロセスにあなたを可能に



               CAP_SYS_ADMIN機能を:

                                のconfigureセキュリティキーにあなたを可能に

				管理ランダムデバイスができます

				デバイスの管理ができます

				あなたがチェックし、設定することができますディスククォータを

				使用すると、カーネルログを設定することができます

				あなたが設定しドメインすることができます

				あなたは、ホスト名を設定することを可能にする

				ことができます発信者bdflush()コマンドは、

				(マウントできます)とumount()コマンドが

				使用するには、configure SMB接続することができます

				ルートのioctlができます

				nfsservctl許可し

				許可VM86_REQUEST_IRQを

				読み、アルファPCIの書き込みが配置可能

				irix_prctl上のMIPSを可能にする

				フラッシュキャッシュされたすべてのm68kを許可

                                セマフォ削除でき

                                CAP_CHOWN「のchown」IPCメッセージ・キューに置き換えると、共有メモリフラグと

				ロックを許可または共有メモリ・セグメントをロック解除

				スワップを切り替えることができ

				ソケットカモフラージュPIDを可能に

				設けられたキャッシュリフレッシュブロックデバイス可能

				フロッピーディスクドライブを可能にするために設けられている

				DMA切替スイッチを可能にするためには

				、管理装置MDが可能


				ドライブ管理IDEを可能にします

				アクセスNVRAMを可能にするデバイスが

				シリアル管理apm_biosを、許可またはbttvテレビジョン装置は

				、ISDN CAPIドライバにコマンドを生成することができる

				PCI非標準構成を読み取ることができます

				可能デバッグDDIのIOCTL 

				送信QIC-117コマンドを許可は、

				SCSIを可能にするための制御または無効伝送を可能にしSCSIコマンドを使用すると、回路上のconfigure暗号化されたパスワード・ファイルシステムにできます



		CAP_SYS_BOOT機能:

				リブート()コマンドができます



		CAP_SYS_NICE機能を:

				他のプロセスを改善できるようにするか、設定された優先順位にし

				FISOとリアルタイムスケジューリングおよび構成された独自のプロセスでできるように



		CAP_SYS_RESOURCE機能:

				交差リソースリミット、集合リソース制限

				クォータの制限を越えて

				保持全体のext2ファイルシステム

				64hzリアルタイムクロック割り込みよりも許さ大きい

				制御端子の最大数全体で

				キーの最大数全体



		CAP_SYS_TIME機能は:

				処理システムクロックが可能に

				_stimeができます

				あなたは、リアルタイムクロックを設定することができます



		CAP_SYS_TTY_CONFIG機能を:

				許可します端末の設定

				端子)(vhangup許可



戻り値



	が返さが0または1であり、正常PR_GET_DUMPABLE PR_GET_KEEPCAPSあります。それが成功した場合、他のオプション値は0です。

                                               -1エラーであれば、適切なエラー番号を設定します。



	EINVAL ----オプション値が正しくないか、それがPR_SET_PDEATHSIGであれば、パラメータの値が0またはarg2のデジタル信号ではありません。



	EBADF無効なディスクリプタ----


 

 

 

以下から転送します。http://blog.chinaunix.net/u/5251/showart.php ID = 2087202?

 

 

我々は指定された各スレッドを与えることができれば、マルチスレッド・アプリケーションの場合は、その後、デバッグの利便性は自明です。

、LWN毎週誰かがされている参照するにはprctl見るために今日追加のインターフェイスという名前のプロセス内の他のスレッドにして、私たちは学んだが、スレッドインタフェースがすでに存在しているという名前自体に、ヘルプ含み笑いは、次の確認コードを書き込みできませんでした:

#include<stdio.h>
#include<pthread.h>
#include<sys/prctl.h>

void* tmain(void*arg)
{
       char name[32];
       prctl(PR_SET_NAME,(unsigned long)"xx");
       prctl(PR_GET_NAME,(unsigned long)name);
       printf("%s/n", name);
       while(1)
                sleep(1);
}

int main(void)
{
        pthread_t tid;
        pthread_create(&tid,NULL, tmain,NULL);
        pthread_join(tid,NULL);

        return 0;
}

 

 

1「」関数プロトタイプ」

書式#include <sysの/ prctl.h>
 
int型はprctl(int型のオプション、unsigned long型ARG2、unsigned long型ARG3、unsigned long型ARG4、unsigned long型の引数5)。

2「」機能「」

prctlコマンド(PR_SET_NAME、「PROCESS_NAME」)


最初のパラメータ、すなわち、プロセス名を設定する操作の種類、指定PR_SET_NAME、あります


第2のパラメータは、16バイトのプロセス名文字列、長までです


OK、非常に単純な!
3「」例「」

setPthreadNameボイド(文字*名)
{
    IF(名= NULL!)
    {
        (無効)PRCT(15、(unsigned long型)名); //は16文字までLNAME
    }
}

----------------
免責事項:この記事は元の記事CSDNブロガー「bad_good_man」で、CC 4.0 BY-SAの著作権契約書に従ってください、複製、元のソースのリンクと、この文を添付してください。 。
オリジナルリンクします。https://blog.csdn.net/bad_good_man/article/details/48787031

 

リリース9件のオリジナルの記事 ウォンの賞賛1 ビュー6699

おすすめ

転載: blog.csdn.net/u014426028/article/details/102738783