Форум программистов, компьютерный форум CyberForum.ru

Приложение на C++ - C++

Восстановить пароль Регистрация
 
Anger
Сообщений: n/a
10.02.2010, 20:02     Приложение на C++ #1
Всем привет! Народ помогите! Нужно создать приложение под Unix на C++, которое будет копировать файл с расширением на заданную букву из заданного каталога в текущий. Проблема в том, что нельзя юзать API, нельзя юзать fopen(), copyFile(), кто знает?? Объясните как сделать? С fopen могу написать)) а вот подругому х.з. Есть идея, что нужно создать файл, а потом скопировать в него содержимое оригинала, но как это реализовать? Посмотрел хэдер библы fcntl.h ничего существенного не нашёл( Есть код проги, которая удаляет файл начинающийся на определённый символ, может это чемнибудь поможет. Помогите, плииз
delete.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include "delete.h"
int main(int argc,char *argv[])
{ 
  if(argc!=3)
  {printf("Parametrs number is disabled \n");}
else
{
  if (strlen(argv[2])!=1)
  {printf("Second parametr is not letter \n");}
  else
  {
    catalog *cat1=new catalog(argv[1]);
    if (cat1->opencat()==-1)
    {printf("Directory is not found ");
    printf( argv[1]);
    printf("\n");}
    else
    {
      cat1->delfiles(argv[2],argv[0]);
      cat1->closecat();
    };
    delete cat1; 
  };
}; return 0;
}
delete.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
class catalog{
private:
 char *name_cat;
 DIR *cat;
public:
 catalog(char *n);
 char* getname(){return name_cat;};
 DIR* getcat() {return cat;};
 ~catalog() {};
 int opencat(); 
 int closecat();
 void delfiles(char *n,char *st);
};
 
class file {
  private:char* name_file;
  int descr;
public:
 file(char *name_f);
 int openfile();
 char* getnamef(){return name_file;};
 ~file() {};
  void delfile(char *name); 
};
 
catalog::catalog(char *n):name_cat(n) {};
int catalog::opencat()
{ if (!(cat= opendir(getname())))
  return -1;
 else
  return 1; 
};  
 
int catalog::closecat()
{return  closedir(getcat());}; 
 
void catalog::delfiles(char *n,char *st)
{ struct dirent *buf;
  char s1[80]="";
  char s2[80]="";
  int fl=0;
  struct stat strstat;
  strcpy(s1,getname());
  strcat(s1,"/");
  while ((buf=readdir(getcat()))!=NULL)
  {
    if(strncmp(buf->d_name,n,1)==0)
     {        strcpy(s2,s1);
      strcat(s2,buf->d_name);   
    stat(s2,&strstat);
    if (S_ISREG(strstat.st_mode))
    {       printf("%-20s",s2); printf("%10s","  удален"); printf("\n");
      if (strcmp(st,s2)!=0) 
       {  file *f=new file(s2);
         if (f->openfile()==1)
         f->delfile(s2); fl=1;}
         else printf("Файл отсутствует\n");
     }
    }
    };
  if (fl==0) {printf("В каталоге нет файлов на заданную букву "); printf("%s\n",n);}
 
};
file::file(char *name_f):name_file(name_f) {};
int file::openfile()
{ if (!(descr= open(getnamef(),O_RDONLY)))
 
  return -1;
 else
  return 1; 
};  
void file::delfile(char *name)
{
 unlink(name);
};
Вот такой вот топик! Спасибо за ранее)

Добавлено через 3 часа 19 минут
Up!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2010, 20:02     Приложение на C++
Посмотрите здесь:

Оконное приложение на C++ C++
C++ IFrame приложение
C++ Консольное приложение на С++
C++ Оконное приложение
C++ консольное приложение (при запуске приложение открывалось на весь экран)
Графическое приложение C++
C++ Не компилируется приложение
C++ Не запускается приложение

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
10.02.2010, 20:29     Приложение на C++ #2
open() можно использовать ?
system( "cp file1 file2" ) можно использовать ?
Yandex
Объявления
10.02.2010, 20:29     Приложение на C++
Ответ Создать тему
Опции темы

Текущее время: 05:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru