Więc od razu wziąłem się za pisanie programiku z konsoli do robienia backupu, w sumie to aby się nauczyć trochę więcej o programowaniu

Oto kod: (na razie nic specjalnego niema ale to dopiero początek)
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <sys/un.h>
// katalogi
#include <dirent.h>
// obsługa błędów
#include <errno.h>
struct cmd_sys
{
int action;
char * miejsce_docelowe;
int * param_item, param_max;
};
//definicje główne
//#define CMD_PARAM_ACTION 1
//definicje akcji
#define ACTION_BACKUP 100
#define ACTION_RESTORE 101
//dane do analizy
#define ACTION_SYSTEM_LOG 1000
#define ACTION_SYSTEM 1001
#define ACTION_ALL 1002
void help(void)
{
printf("\nhelp\n");
}
/*void copy(char * dest, char * source)
{
int max = strlen(source);
for(int i = 0;i < max;i++)
*dest++ = *source++;
*dest = '\0';
}*/
int main(int argc, char* argv[])
{
if(argc > 1)
{
cmd_sys* cmd = new cmd_sys;
cmd->action = cmd->param_max = 0;//for(int j = 0;j < argc;j++) printf("%s\n", *argv++);
//cmd->param_item = new int;
//strcat(cmd->miejsce_docelowe, "null");
int i = 2, cmd_param = 0;
*argv++;
if(strcmp(*argv, "backup") == 0) cmd->action = ACTION_BACKUP; else
if(strcmp(*argv, "restore") == 0) cmd->action = ACTION_RESTORE;
while(argc > i++)
{
*argv++;
if(strcmp(*argv, "--system-log") == 0) cmd_param = ACTION_SYSTEM_LOG; else
if(strcmp(*argv, "--system") == 0) cmd_param = ACTION_SYSTEM; else
if(strcmp(*argv, "--all") == 0) cmd_param = ACTION_ALL;
}
DIR* katalog = opendir(*argv);
if(katalog)
{
closedir(katalog);
strcpy(cmd->miejsce_docelowe, *argv);
} else return 1;
if(cmd->action != 0)
{
printf("\nakcja:%d\nkatalog:%s\n", cmd->action, cmd->miejsce_docelowe);
} else help();
delete cmd;
} else help();
return 0;
}
Głowiłem się nad tym i próbowałem to samo zrobić za pomocą memcpy ale też to samo także strcaat wywala ten sam błąd.
Wszystko kompilowane w g++ gdyż bardziej pod c++ pisane było
Jeśli ktoś wie to bardzo proszę o pomoc

Pozdrawiam Grzesiok
P.S. napisałem własną funkcje copy ale wywala ten sam błąd.
.
[ Dodano: 2008-05-04, 18:58 ]
niewiedziałem alepokombinowałem i wyszło n to
Kod: Zaznacz cały
DIR* katalog = opendir(*argv);
if(katalog)
{
cmd->miejsce_docelowe = new char;
closedir(katalog);
strcpy(cmd->miejsce_docelowe, *argv);
} else return 1;
