Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 14:23   #1
sidjey
Новичок
Джуниор
 
Регистрация: 20.07.2010
Сообщений: 1
По умолчанию CreateProcess и тд

Ребят, помогите плиз доделать прогу... нужно вставить CreateProcess() в прогу... прога подобие ls в linux с pipe() и fork().... Очень прошу помогите с прогой!!! Заранее спасибо!!!!
Код:
#undef UNICODE
#include <windows.h>
#include <stdio.h>
#include <string.h>

void print_space(int count)
{
    for (int i=0; i<=count; i++) printf(" ");
}

int process_directory(char *theDir, int& level)
{
    WIN32_FIND_DATA ffd;
    LARGE_INTEGER filesize;
    char szDir[MAX_PATH];
    size_t length_of_arg;
    HANDLE hFind = INVALID_HANDLE_VALUE;
    DWORD dwError=0;

    
    strncpy_s(szDir, theDir, MAX_PATH);
    strncat_s(szDir, "\\*", MAX_PATH);
    
    // Find the first file in the directory.
    hFind = FindFirstFile(szDir, &ffd);

    if (INVALID_HANDLE_VALUE == hFind) 
        return dwError;
    
    do
    {
        // пропускаем каталоги . и ..
        if ((strncmp(ffd.cFileName, ".", MAX_PATH) == 0) ||
            (strncmp(ffd.cFileName, "..", MAX_PATH) == 0) )
        {
            if (FindNextFile(hFind, &ffd) != 0) continue;
            else break;
        }
        
        if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            print_space(level);
            printf("+--");
            printf("  %s   <DIR>\n", ffd.cFileName);
            level++;
            process_directory(ffd.cFileName, level);
        }
        else
        {
            print_space(level);
            printf("|--");
            filesize.LowPart = ffd.nFileSizeLow;
            filesize.HighPart = ffd.nFileSizeHigh;
            printf("  %s   %ld bytes\n", ffd.cFileName, filesize.QuadPart);
        }
    }
    while (FindNextFile(hFind, &ffd) != 0);
    
    level--;
    dwError = GetLastError();
    FindClose(hFind);
    return dwError;
}


int main(int argc, char *argv[])
{
    if (argc == 1)
    {
        printf("wrong run. use program <path>\n");
        return 1;
    }

    int level = 0;
        process_directory(argv[1], level);

    return 0;
}
и вот еще одна программка, но я так и не понял как ее делать, помогите плиз ее сделать или хотя бы совет) для Linux
Программа, копирующую файл произвольного размера блоками по 128 байт через буфер 1КБайт. Заранее благодарю!!
sidjey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CreateProcess Акоб Общие вопросы C/C++ 7 24.03.2011 16:31
CreateProcess Yokka Общие вопросы C/C++ 0 03.06.2010 23:46
CreateProcess maziLa Win Api 1 19.05.2010 21:01
CreateProcess() damned20 Win Api 1 18.09.2009 18:38
CreateProcess, С++ MaTBeu Win Api 5 06.10.2008 22:56