Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/20: Рейтинг темы: голосов - 20, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 05.12.2011
Сообщений: 39

Запустить программу в терминале линукс

02.10.2013, 16:51. Показов 4117. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подсчет контрольной суммы файла (суммы байт по модулю 256). Нить считывает участок файла и считает его сумму. Результаты складываются.
программа работает,компилируется. но как ее запустить в терминале? нужно создать любой файлик и в нем прописать какие-нибудь символы.и потом нужно запустить прогу так,чтобы в качестве параметра был мой файлик
ребят,как это сделать?
запускаем обычно ./имя программы
а вот здесь как,я не знаю

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <pthread.h>
char* filename;
FILE* f;
int* ans;
int filesize, numblocks, blocksize;
pthread_t *tblock;
 
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
int CalculateBlockSize(int size, int numblocks)
{
    return size/numblocks+1;
}
 
void* run (void* arg)
{
    int thread_idx;
    int * thread_ptr;
 
    thread_ptr=(int *)arg;
    thread_idx=*thread_ptr;
 
    pthread_mutex_lock(&mutex);
    printf("\nStart thread %d\n",thread_idx);
    pthread_mutex_unlock(&mutex);
 
    pthread_mutex_lock(&mutex);
    char* buffer = new char[blocksize];
    fseek(f, blocksize*thread_idx, SEEK_SET);
 
    printf("Thread %d position in file %ld\n", thread_idx, ftell(f));
    int csize=fread(buffer,1,blocksize,f);
    rewind(f);
    pthread_mutex_unlock(&mutex);
 
    int mem=0;
    for (int i=0; i<csize; i++)
    {
        mem+=buffer[i];
        mem%=256;
    }
    pthread_mutex_lock(&mutex);
    ans[thread_idx]=mem;
    pthread_mutex_unlock(&mutex);
 
    free(buffer);
 
 
    pthread_exit(0);
}
 
int main(int argc, char* argv[])
{
    if (argc<3) {printf("Need more arguments!\n"); exit(-2);}
    int s;
    filename=argv[1];
    f=fopen(filename, "rb");
    fseek (f, 0, SEEK_END);
    filesize=ftell(f);
    numblocks=atoi(argv[2]);
 
    ans = new int[numblocks];
    tblock = new pthread_t[numblocks];
    int* numbers=new int[numblocks];
    for (int k=0;k<numblocks;k++)
        {
            numbers[k]=k;
        }
    blocksize=CalculateBlockSize(filesize, numblocks);
    printf("%d %d %d\n", filesize, numblocks, blocksize);
    rewind(f);
 
   int i=0;
    while (i<numblocks)
    {
        s=pthread_create(
                    &tblock[i],
                    NULL,
                    &run,
                    &numbers[i]
                    );
        i++;
        if (s!=0)
        {
            printf("error creating thread number %d\n",i);
            exit(-1);
        }
    }
    for (int j=0; j<i; j++) {
        s=pthread_join(tblock[j],NULL);
        if (s!=0)
        {
            printf("error finishing thread %d\n",j);
        }
        printf("\nFinished thread %d\n",j);
    }
 
    int mem1=0;
    for(i=0;i<numblocks;i++)
    {
        mem1+=ans[i];
        mem1%=256;
    }
 
    pthread_mutex_destroy(&mutex);
 
    printf("\nResult=%d\n", mem1);
 
    free(ans);
    free(tblock);
    free(numbers);
 
    return 0;
}
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2013, 16:51
Ответы с готовыми решениями:

Удаленное выполнение команд в терминале линукс
Добрый день. Подскажите как можно реализовать удаленное общение с консолью линукса. Нужно чтоб программка на C# посылала команду и...

Принцип браузерной игры в линукс терминале
Привет! Наткнулся на java библиотеку CHARVA. И хотел бы уточнить у знающих людей, возможно ли на основе данной библиотеки сделать...

Запустить в терминале
Давно не залазил Ubutu. Не могу понять почему нет появляется пункт меню &quot;Запустить в терминале&quot; ведь должна быть? При двойном клике...

4
1 / 1 / 0
Регистрация: 02.10.2013
Сообщений: 11
02.10.2013, 18:18
а проблема в чем? заходим в эмулятор терминала или командную строку и пускаем ./program_name <file_path>
0
1 / 1 / 1
Регистрация: 05.12.2011
Сообщений: 39
02.10.2013, 20:27  [ТС]
пишет ошибка синтаксиса около неожиданной лексемы 'newline'

Добавлено через 5 минут
это убунту если что
0
1 / 1 / 0
Регистрация: 02.10.2013
Сообщений: 11
03.10.2013, 13:19
эта программа принимает два параметра! первый - имя файла, второй - numblocks=atoi(argv[2]), что это не знаю...
1
 Аватар для Скриптыч
28 / 17 / 0
Регистрация: 14.08.2013
Сообщений: 147
05.10.2013, 20:19
Code
1
2
cd /home/"путь к папке с твоим бинарником"
./"имя твоего бинарника"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2013, 20:19
Помогаю со студенческими работами здесь

Запустить локальный принтер в терминале
Долго бьюсь все идеи кончились и наверное уже наступило &quot;замыливание глаза&quot;, наверняка не вижу очевидных вещей... Началаьные данные ...

Как скомпилировать и запустить код ассемблера в терминале?
У меня есть код ассемблера. Как его скомпилить и запустить в терминале? Есть файл с кодом и текстовый файл, который код обрабатывает, и...

посоветуйте, на чем подешевле запустить линукс?
Есть желание освоить разработку софта под линукс на ARM, и есть некоторый опыт проектирования плат и опыт отладки микропроцессорных схем...

Не могу запустить приложение под линукс
Привет все. Ради интереса поставил на virtualbox убунту установил там моно и code blocks. Скачал g++, написал простенький консольный hello...

Хочу запустить файл с расширением.сср из терминала Линукс
хочу запустить файл с расширением.сср из терминала Линукс. в nano создаю файл, и после ./файл.сср запускаю. выдает ошибку. жалуется на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru