?? goto.c
字號:
#include <unistd.h>
int offset=0;
int getlin(char *s);
int compar(char *s1, char *s2);
int getC(void);
int main(int argc, char **argv)
{
char line[64];
if (argc<2 || isatty(0)) {
write(1, "goto error\n", 11);
lseek(0, 0, 2);
return 1;
}
lseek(0, 0, 0);
do {
if (getlin(line)) {
write(1, "label not found\n", 16);
return 1;
}
} while (compar(line, argv[1]));
lseek(0, offset, 0);
return 0;
}
int getlin(char *s)
{
int ch, i;
i = 0;
while ((ch=getC())!='\0' && ch!=':') {
while(ch!='\n' && ch!='\0')
ch = getC();
}
if (ch=='\0')
return(1);
while ((ch=getC())==' ');
while (ch!=' ' && ch!='\n' && ch!='\0') {
s[i++] = ch;
ch = getC();
}
while(ch != '\n')
ch = getC();
s[i] = '\0';
return(0);
}
int compar(char *s1, char *s2)
{
int i;
i = 0;
while(1) {
if(s1[i] != s2[i])
return(1);
if (s1[i++] == '\0')
return(0);
}
}
int getC(void)
{
char cc;
offset++;
if(read(0, &cc, 1))
return cc;
else
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -