005
15.03.2011, 18:22 Uhr
holm
|
Ähäm... was heißt hier darf nicht vorkommen? Die dürfen vorkommen aber sie erzeugen Kuddelmuddel wenn die Shell sie interpretiert. Du mußt Sie dann entsprechend vor der Interpretation als Wildcard maskieren. Niemand verbietet Dir aber sie in einem C-Programm z.B. mittels Sytemcall zu erzeugen. Auch Schrägstriche dürfen ausdrücklich vorkommen, allerdings referenziert so ein Konstrukt dann automatisch eine Datei in einem Pfad, was nicht verkehrt sein muß. ein fopen("/lolo","r") öffnet Dir problemlos eine Datei namens lolo im Rootverzeichnis zum lesen...
Wir sind doch hier nicht bei Willhelm Tore und Konsorten, die schon jahrzehntelang versuchen ein Betriebssystem zu bauen und nur Codemüllhalden schaffen:
$ touch "~><!*" $ ls -l [..] -rw-r--r-- 1 holm holm 68993 20 Jul 2010 xpla-bulkerase.pdf drwxr-xr-x 2 holm holm 1024 3 Mär 2010 zu-ebay drwxr-xr-x 2 holm holm 1024 9 Feb 21:06 zugelaufen -rw-r--r-- 1 holm holm 0 15 Mär 17:53 ~><!*
$ rm "./~><!*" ls [..] -rw-r--r-- 1 holm holm 68993 20 Jul 2010 xpla-bulkerase.pdf drwxr-xr-x 2 holm holm 1024 3 Mär 2010 zu-ebay drwxr-xr-x 2 holm holm 1024 9 Feb 21:06 zugelaufen $
..und weg isses.
Ok, das ist FreeBSD und nicht Wega, aber deutliche Unterschiede dürfte es da nicht geben.
Wenn mich nicht Alles täuscht dürfen Dateinamen auf dem P8000 14 Zeichen lang sein, sicher bin ich mir da aber jetzt nicht. Ich müßte die Kiste erst mal booten oder bei Olli in den Quellen kramen. Wenn die 14 Zeichen nicht stimmen sind es 255...
Gruß,
Holm -- float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v; {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+ (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&& (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;} |