mboost-dp1
'Lille problem....
- Forside
- ⟨
- Forum
- ⟨
- Programmering
En ven og jeg er i gang med et lille projekt, et program der sender en besked (i krypteret form) til en anden (via enten SSH/FTP eller TELNET-protokollen). Eneste problem er transmissionen, den åbner en pipe (som den skal) men gemmer filen lokalt (hvilket den jo IKKE skal) hvorefter den lukker pipen (som den skal). Er der nogen der kan svare mig på hvor det er jeg har kvajet mig (C/C++ er ikke min stærkeste side, men ASM tager en evighed at skrive).
#include
#include
#include
#include
#include
#include
char input_string[4096000];
char file_name[512];
char reciever[64];
int (*fpointer)();
int *target;
FILE *ptr;
FILE *fd;
skriv_fil()
{
printf(" Enter message : ");
gets(input_string);
printf(" Enter name of file to save message as : ");
gets(file_name);
};
transmitter()
{
printf(" Enter Protocol & Reciever : ");
gets(reciever);
target = open("%s/%s",reciever,file_name,O_CREAT,O_RDWR);
fd = popen(ptr,"w");
ptr = fopen(target,"w");
fputs(input_string,fd);
fclose(ptr);
pclose(fd);
};
#include
#include
#include
#include
#include
#include
char input_string[4096000];
char file_name[512];
char reciever[64];
int (*fpointer)();
int *target;
FILE *ptr;
FILE *fd;
skriv_fil()
{
printf(" Enter message : ");
gets(input_string);
printf(" Enter name of file to save message as : ");
gets(file_name);
};
transmitter()
{
printf(" Enter Protocol & Reciever : ");
gets(reciever);
target = open("%s/%s",reciever,file_name,O_CREAT,O_RDWR);
fd = popen(ptr,"w");
ptr = fopen(target,"w");
fputs(input_string,fd);
fclose(ptr);
pclose(fd);
};
Det er vel ikke så underligt at 'ptr = fopen(target,"w");' åbner en fil lokalt?
Og en lille notits: gets er en buffer-overrun fest, brug
fgets(file_name, sizeof(file_name), stdin) istedet.
Og en lille notits: gets er en buffer-overrun fest, brug
fgets(file_name, sizeof(file_name), stdin) istedet.
"Det er vel ikke så underligt at 'ptr = fopen(target,"w");' åbner en fil lokalt?"
?????
Den linje er en pointer til kommandoen der åbner pipen, hvis du har en anden model må du gerne komme med den, ellers så lad være med at spille klog,,,gider du?
?????
Den linje er en pointer til kommandoen der åbner pipen, hvis du har en anden model må du gerne komme med den, ellers så lad være med at spille klog,,,gider du?
#4:
Forventer du nogensinde igen at folk vil hjælpe dig, når du taler til folk der prøver at hjælpe, på den måde?
http://www.catb.org/~esr/faqs/smart-questions.html
Den kunne du vist have brug for at læse...
Forventer du nogensinde igen at folk vil hjælpe dig, når du taler til folk der prøver at hjælpe, på den måde?
http://www.catb.org/~esr/faqs/smart-questions.html
Den kunne du vist have brug for at læse...
Beklager hvis jeg lød grov, men hvis man kigger koden igennem er det (efter min mening) åbenlyst hvordan programmet fungerer.
Det jeg ønskede hjælp med var om det var en forkert komando jeg anvendte & i så fald HVILKEN JEG SKULLE BRUGE ISTEDET, ikke en der bare siger forkert kommando makker!
Når jeg bliver spurgt om noget af nogen siger jeg ikke at det ved jeg, hvorefter jeg ikke svarer, for det kan ikke bruges til noget.
Det jeg ønskede hjælp med var om det var en forkert komando jeg anvendte & i så fald HVILKEN JEG SKULLE BRUGE ISTEDET, ikke en der bare siger forkert kommando makker!
Når jeg bliver spurgt om noget af nogen siger jeg ikke at det ved jeg, hvorefter jeg ikke svarer, for det kan ikke bruges til noget.
jeg vælger at ignorere dit lettere sure opstød, og går til kødet:
1. Dit program indeholder flere åbenlyse fejl
* brug af uinitialiserede variable (hint: første brug af ptr)
* standard library funktioner bliver kaldt forkert (hint: open)
2. Dit program indholder hvad mange ville kalde "dårlig kodestil" (det er ligegyldigt hvis koden virker, men er forfærdeligt når den skal debugges)
* ingen error checking (hint: programmet går ned hvis eks. fopen fejler)
3. Du har klippet koden ud af kontekst uden at fjerne alle referencer til resten af koden, og uden at komentere eller nævne det.
Mine forslag:
* Check de funktioner du brugers man-sider.
* Check returværdier.
* Brug en nyere compiler, hvis det er muligt.
Nej, jeg er ikke linux-udvikler og jeg ved ikke noget specifikt om lige præcis dit problem, men derfor kunne det jo hænde at jeg havde noget konstruktiv kritik og brugbar input at komme med alligevel?
1. Dit program indeholder flere åbenlyse fejl
* brug af uinitialiserede variable (hint: første brug af ptr)
* standard library funktioner bliver kaldt forkert (hint: open)
2. Dit program indholder hvad mange ville kalde "dårlig kodestil" (det er ligegyldigt hvis koden virker, men er forfærdeligt når den skal debugges)
* ingen error checking (hint: programmet går ned hvis eks. fopen fejler)
3. Du har klippet koden ud af kontekst uden at fjerne alle referencer til resten af koden, og uden at komentere eller nævne det.
Mine forslag:
* Check de funktioner du brugers man-sider.
* Check returværdier.
* Brug en nyere compiler, hvis det er muligt.
Nej, jeg er ikke linux-udvikler og jeg ved ikke noget specifikt om lige præcis dit problem, men derfor kunne det jo hænde at jeg havde noget konstruktiv kritik og brugbar input at komme med alligevel?
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.