2013-05-16 82 views
0

的sched.h中在Linux的0.12:task_struct的struct中pwd和root的區別是什麼?

struct task_struct { 
/* these are hardcoded - don't touch */ 
     long state;  /* -1 unrunnable, 0 runnable, >0 stopped */ 
     long counter; 
     long priority; 
     long signal; 
     struct sigaction sigaction[32]; 
     long blocked; /* bitmap of masked signals */ 
/* various fields */ 
     int exit_code; 
     unsigned long start_code,end_code,end_data,brk,start_stack; 
     long pid,pgrp,session,leader; 
     int  groups[NGROUPS]; 
     /* 
     * pointers to parent process, youngest child, younger sibling, 
     * older sibling, respectively. (p->father can be replaced with 
     * p->p_pptr->pid) 
     */ 
     struct task_struct  *p_pptr, *p_cptr, *p_ysptr, *p_osptr; 
     unsigned short uid,euid,suid; 
     unsigned short gid,egid,sgid; 
     unsigned long timeout,alarm; 
     long utime,stime,cutime,cstime,start_time; 
     struct rlimit rlim[RLIM_NLIMITS]; 
     unsigned int flags;  /* per process flags, defined below */ 
     unsigned short used_math; 
/* file system info */ 
     int tty;    /* -1 if no tty, so it must be signed */ 
     unsigned short umask; 
     struct m_inode * pwd; 
     struct m_inode * root; 
     struct m_inode * executable; 
     struct m_inode * library; 
     unsigned long close_on_exec; 
     struct file * filp[NR_OPEN]; 
/* ldt for this task 0 - zero 1 - cs 2 - ds&ss */ 
     struct desc_struct ldt[3]; 
/* tss for this task */ 
     struct tss_struct tss; 
}; 

什麼struct m_inode * rootstruct m_inode * pwd之間有什麼不同?
謝謝。

+0

是不是在談論很早的linux內核版本? –

+0

不要以爲今天使用了'0.12'。就我所知,甚至在'3.0'和'3.2'之間也有很多變化。 – Alex

+0

@Uday我是一個新的。所以我從0.12 – lxgeek

回答

1

的PWD在這樣的結構提出了當前工作目錄,通常是不一樣的東西在Linux中pwd命令。

如果您想要一個示例,請使用ps獲取終端中正在運行的進程的pid XXX以及cd/proc/XXX /,此進程有root和cwd(當前工作目錄)。

1

cwd是當前工作目錄,您可以使用chdir()進行更改。 root是可以用chroot()(查找chroot jail)來更改的根目錄。

相關問題