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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Anger
Сообщений: n/a
#1

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

10.02.2010, 20:02. Просмотров 445. Ответов 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++ IFrame приложение
C++ мультиязыковое приложение
Приложение WinApi на C++ C++
C++ Приложение C++ на NetBeans
Desktop приложение на с++ C++
Графическое приложение C++
Закрывается приложение C++
C++ Первое С++ приложение
C++ Не запускается приложение
Кроссплатформенное приложение C++
Зависает приложение C++
Приложение не запускается C++

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

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

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