sadist_sniper
07/11/2004, 14:13
#include <stdio.h>
extern char **environ;
main(int argc,char *argv[])
{
int i,namelen=0;
char esit='=';
char *sonuc;
if(argc==1)
for (i=0;environ[i]!=NULL; i++)
printf("%s\n", environ[i]);
else if(strcmp(argv[1],"-i")!=0)
{
namelen=strcspn(argv[1],"=");
strncpy(sonuc, argv1], namelen);
printf("%s\n",sonuc);
printf("%s\n",&argv[1][namelen+1]);
}
exit(0);
}
Bu kod üzerinde çalışıyodum. Yapmak istediğim şey, mesela programı "doenv path=onur" şeklinde çalıştırdığım zaman, ekrana "=" işaretinin öncesini ve sonrasını alt alta yazmasını istiyorum. Bunu becerdim de. Ama şöyle bir sorun var. diyelim ki programı "doenv path=onur" şeklinde çalıştırdım, alet "path" yazması gerekirken "pat`" yazıyor. diğer kısmı normal...
her ne kadar değişkeni "*sonuc" olarak tanımlamak istemesem de, öyle tanımlamak zorundayım çünkü "=" işaretinden önce gelecek karakter dizisinin boyutunu önceden bilmek zor.
Sizce problem nedir?
extern char **environ;
main(int argc,char *argv[])
{
int i,namelen=0;
char esit='=';
char *sonuc;
if(argc==1)
for (i=0;environ[i]!=NULL; i++)
printf("%s\n", environ[i]);
else if(strcmp(argv[1],"-i")!=0)
{
namelen=strcspn(argv[1],"=");
strncpy(sonuc, argv1], namelen);
printf("%s\n",sonuc);
printf("%s\n",&argv[1][namelen+1]);
}
exit(0);
}
Bu kod üzerinde çalışıyodum. Yapmak istediğim şey, mesela programı "doenv path=onur" şeklinde çalıştırdığım zaman, ekrana "=" işaretinin öncesini ve sonrasını alt alta yazmasını istiyorum. Bunu becerdim de. Ama şöyle bir sorun var. diyelim ki programı "doenv path=onur" şeklinde çalıştırdım, alet "path" yazması gerekirken "pat`" yazıyor. diğer kısmı normal...
her ne kadar değişkeni "*sonuc" olarak tanımlamak istemesem de, öyle tanımlamak zorundayım çünkü "=" işaretinden önce gelecek karakter dizisinin boyutunu önceden bilmek zor.
Sizce problem nedir?