Golang 之os包之 process 接口函数汇总

此篇记录 线程相关的接口函数,此部分例程待补充。

1.Process结构体

功能:Process存储了通过StartProcess创建的进程信息。

type Process struct {
    
       
    Pid int                      //当前进程id
    handle uintptr        //处理指针     
    isdone uint32        //如果进程正在等待则该值非0,没有等待该值为0
    sigMu  sync.RWMutex //锁
}

1. FindProcess函数
func FindProcess(pid int) (p *Process, err error)    
功能:通过进程pid查找运行的进程,返回相关进程信息及在该过程中遇到的error

 
2. StartProcess函数
func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error) 
功能:StartProcess启动一个新的进程,其传入的name、argv和addr指定了程序、参数和属性;
StartProcess是一个低层次的接口。os/exec包提供了高层次的接口;如果出错,将会是*PathError错误。


3. Kill方法
func(p *Process) Kill() error           
功能:杀死进程并直接退出

4. Release方法
func (p *Process) Release() error        
功能:释放进程p的所有资源,之后进程p便不能够再被使用,只有Wati没有被调用时,才需要调用Release释放资源

5. Signal方法
func (p *Process) Signal(sig Signal) error    
功能:发送一个信号给进程p, 在windows中没有实现发送中断interrupt

5. Wait方法
func (p *Process) Wait() (*ProcessState, error)  
功能:Wait等待进程退出,并返回进程状态和错误。Wait释放进程相关的资源。在大多数的系统上,进程p必须是当前进程的子进程,否则会返回一个错误。

ProcessState结构体

功能:ProcessState存储了Wait函数报告的进程信息

type ProcessState struct {
    
       
    pid    int                    
    status syscall.WaitStatus      //系统相关的状态信息
    rusage *syscall.Rusage
}

1. Exited方法
func (p *ProcessState) Exited() bool      
功能:判断程序是否已经退出

 

2. Pid方法
func (p *ProcessState) Pid() int                               
功能:返回退出进程的pid

 

3. String方法
func (p *ProcessState) String() string                    
功能:获取进程状态的字符串表示

 

4. Success方法
func (p *ProcessState) Success() bool                   
功能:判断程序是否成功退出,而Exited则仅仅只是判断其是否退出

 

5. Sys方法
func (p *ProcessState) Sys() interface{
    
    }
功能:返回有关进程的系统独立的退出信息。并将它转换为恰当的底层类型(比如Unix上的syscall.WaitStatus),主要用来获取进程退出相关资源。

 

6. SysUsage方法
func (p *ProcessState) SysUsage() interface{
    
    }        
功能:SysUsage返回关于退出进程的系统独立的资源使用信息。主要用来获取进程使用系统资源


7. SystemTime方法
func (p *ProcessState) SystemTime() time.Duration
功能:获取退出进程的内核态cpu使用时间

8. UserTime方法
func (p *ProcessState) UserTime() time.Duration    
功能:返回退出进程和子进程的用户态CPU使用时间

Signal结构体

功能:代表操作系统的信号,底层的实现是操作系统独立的,在Unix中是syscal.Signal。
type Signal interface {
    
    
    String() string   
    Signal() // 同其他字符串做区别
}

var (
       Interrupt Signal = syscall.SIGINT
        Kill      Signal = syscall.SIGKILL
)

在所有系统中都能够使用的是interrupe,给进程发送一个信号,强制杀死该进程

 

SyscallError结构体

功能:SyscallError记录了一个特定系统调用的错误,主要用来返回SyscallError的字符串表示。

 

type SyscallError struct {
    
         

Syscall string  Err     error

}

func (e *SyscallError) Error() string   

功能:返回SyscallError的字符串表示

猜你喜欢

转载自blog.csdn.net/weixin_38387929/article/details/119796470