?? initialization.c
字號:
#include "ysh.h"
#include "extern.h"
int getline(int fd,char *buf) /*按行讀取*/
{
int i=0;
char c;
while (read(fd,&c,1)){
buf[i++]=c;
if (c=='\n'){
buf[i-1]='\0';
return i;
}
}
return i;
}
void getenviron(int n,char *s)
{
int i=0,j=0,k=0;
char c,buff[80],*p;
while ((c=s[i])!='='){
buff[i++]=c;
}
buff[i++]='\0';
if (strcmp(buff,"PATH")==0){
while (s[i]!='\0'){
if (s[i]==':'){ /*將以“:”分隔的查找路徑分別設置到envpath[]中*/
buff[j++]='/';
buff[j]='\0';
p=(char *) malloc(strlen(buff)+1);
strcpy(p,buff);
envpath[k++]=p; /*將路徑保存在envpath[k]中*/
envpath[k]=NULL; /*字符串尾置空*/
j=0; /*為下一個envpath[i]作準備*/
i++;
}else {
buff[j]=s[i];
j++;
i++;
}
}
}
else
fprintf(stderr,"No match");
}
void init_environ()
{
int fd,n,i;
char buf[80];
/*打開保存查找路徑的ysh_profile文件*/
if ((fd=open("ysh_profile",O_RDONLY,660))==-1)
{
printf("init environ variable error\n");
exit(1);
}
while (n=getline (fd,buf)){
getenviron(n,buf); /*getenviron()函數*/
}
envhis.start=0; /*初始化history循環數組*/
envhis.end=0;
head=end=NULL; /*初始化jobs鏈表指針*/
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -