Покажи Публикации - petar787
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: [1]
1  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 25, 2018, 21:28
Да се създадат три процеса, базирани на C програма комуникиращи през обща памет с размер едно цяло число. Първият процес генерира числа от 1 до 100 и ги записва в общата памет. Останалите процеси четат от общата памет като формират съответно сумите на четните и нечетните числа и ги визуализират.`

Почти е готова, но господина каза че трябва да използвам още един или два семафора който да използвам в PS() на процесите odd и even. Ако някой може да помогне. Аз се мъчих но не става

това е процеса Even

Код:
#include <stdio.h>
#include "shared.h"
#include <stdbool.h>
int main()
{
  int i,k,e,j;
  int *common;
  common=(int *)getmem(61560111);
  sem_t empty;
  empty = sem_init(61560111);
 
  sem_t full;
  full = sem_init(61560112);
  j=0;
  for(i=1;i<=100;i++)
  {
    *common=e;
    PS(full);
  if(e%2==0) {
   
 
 j+=e;

 VS(empty);
  }
  for(k=0;k<1000;k++);   
  }
  printf("\n");
  printf("The sum of even numbers is: %d \n",j);
  printf("Even numbers process ended. \n");
}

Процес odd
Код:
#include <stdio.h>
#include "shared.h"
#include <stdbool.h>
int main()
{
  int i,f,s,k,a;
  int sum;
  int *common;
  common=(int *)getmem(61560111);
  sem_t empty;
  empty = sem_init(61560111);
 
  sem_t full;
  full = sem_init(61560112);
  s=0;
  for(i=1;i<=100;i++)
  {
        a=*common;
    PS(full);
    if(a%2!=0) {

  s+=a;
   }
   //printf("decc %d \n", a);
   VS(empty);
   
   for(k=0;k<1000;k++);
    }
    printf("The sum of odd numbers is: %d \n",s);
    printf("Odd numbers process end. \n");
   

}
А това е процеса init където се инициализира семафорите.
Код:
#include <stdio.h>
#include "shared.h"
int main()
{
  int *common;
  common  = (int *)getmem(61560111);
  *common = 0;
 
  sem_t empty;
  empty = sem_init(61560111);
    sem_set(empty,1);
 
    sem_t full;
  full = sem_init(61560112);
    sem_set(full,0);
   
    printf("The initial %d \n", *common);
   
 
 
}
2  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 05, 2018, 17:37
Той каза че за решение на задачата се използват getmem и семафори
3  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 03, 2018, 20:59
Аз го оправих това, но сега имам проблем с тази задача: Да се създадат три процеса, базирани на C програма комуникиращи през обща памет с размер едно цяло число. Първият процес генерира числа от 1 до 100 и ги записва в общата памет. Останалите процеси четат от общата памет като формират съответно сумите на четните и нечетните числа и ги визуализират.

Не знам как се работи с тази обща памет, изобщо тази задача ми е мъгла, ако някой може да помогне
4  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 03, 2018, 18:07
Пробвах го и тръгна на другият комп, явно нещо от мойта среда е. Искам да попитам дали някой знае как трябва да се направи тази задача: Да се създадат три процеса, базирани на C програма комуникиращи през обща памет с размер едно цяло число. Първият процес генерира числа от 1 до 100 и ги записва в общата памет. Останалите процеси четат от общата памет като формират съответно сумите на четните и нечетните числа и ги визуализират.
5  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 02, 2018, 21:34
утре ще пробвам, но няма нищо на български
6  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 02, 2018, 21:13
не става утре ще го пробвам на  друг комп щото аз мисля че това е от това, че съм със stackware. Не не съм го писал писал на windows даже създавам нов скрипт с едно echo вътре и като го пусна самостоятелно работи, но като го пробвам да го пусна от скрипта ми изписва zad1.sh ./ff.sh bin/bash: bad interpreter: No such file or directory. където zad1.sh ми е скрипта с менюто, а ff.sh ми е скрипта с echo които изкам да ми изведе
7  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 02, 2018, 20:56


3)
   echo -n "Vavedete imeto na faila:"
   read filename3
   if [ -d $filename3 ];
   then
   echo "Tova e direktoria!"
   else   
   if [[ $filename3 == *.с ]];
   then
      programname="${filename3%.*}"
      gcc -o $programname $filename3 &> "error.log"
   else
      echo "Faila ne e programa na С."
   fi
fi;;                                                                 
4)
   echo -n "Vavedete imeto na faila:"
   read filename4
   if [[  -x $filename4  &&  $filename4 == *.sh ]];
   then
   ./$filename4
   else
   echo "Faila ne e izpalnim:"
   fi;;                                                             
*)
   echo "Opitaite otnovo!";;                                         
esac

Аз така правя натискам 3 и компилирам някакъв .с проект и ако има грешки ги записва в error.log и после натискам 4 и избирам някакъв друг .sh файл и него пускам. Не трябва ли да е така. Защото ми каза господина, че тези опции не е задължително да е за един файл.
8  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 02, 2018, 20:33
Там трябва да е *.c аз бях правил промени дали ще може с шел скрипт и съм го забравил, но иначе там трябва да е *=с
9  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 02, 2018, 19:56
Самата 3 опция компилира програмата и ако има грешки се записва в отделен файл, а не ми ги показва в конзолата и точно тези два реда това правят прави файл в които да се запишат грешките. Поне така мисля че се прави, ако има друг вариант може да кажете и изобщо дали цялата задача е така както е условието. А колкото до това което писа с chmod +x стана прави го изпълним файл обаче с това ./ Не става да не е щото аз ползвам virtualbox с stackware 14.2.
10  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 02, 2018, 18:20
не става обаче като махна / и остане само  . $filename стана, но искам да попитам как да го направя изпълним смисъл такъв аз първо трябва да напиша chmod u+x s.sh и след това да пусна другият скрипт за да се изпълни.
11  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Apr 02, 2018, 17:26
Не става с това изписва ми bad interpreter: No such file or directory
Ето и кода
Код:
#!/bin/bash
echo "1 - Sazdavane na fail."
echo "2- Redaktirane na fail."
echo "3 - Kompilirane na fail"
echo "4 - Izpalnenie na faila."
echo "Vavedete edin ot variantite, dadeni po gore ot menuto:"
read option
case $option in
1)
   echo -n "Vavedete imeto na faila:"
   read filename
   touch $filename   
   echo "Faila e sazdaden!";;                     
2)
   echo -n "Vavedete imeto na faila:"
   read filename2
   if [ -e $filename2 ];
   then
   nano $filename2   
   echo "Faila e redaktiran:";
   else
   echo "Faila ne sashtestvuva!";
   fi;;                                           
3)
   echo -n "Vavedete imeto na faila:"
   read filename3
   if [ -d $filename3 ];
   then
echo "Tova e direktoria!"
   else
if [[ $filename3 == *.sh ]];
then
programname="${filename3%.*}"
gcc -o $programname $filename3 &> "error.log"
else
echo "Faila ne e programa na sh."
fi
fi;;                                                                 
4)
   echo -n "Vavedete imeto na faila:"
   read filename4
   if [[ -x $filename4  &&  $filename4 == *.sh]];
   then
./$filename4
   else
   echo "Faila ne e izpalnim:"
   fi;;                                                             
*)
   echo "Opitaite otnovo!";;                                         
esac

12  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Mar 30, 2018, 11:50
Търсил съм но не мога да намеря, затова пиша тука. Имам следната задача да се създаде shell скрипт предоставяща среда за създаване, редактиране, компилиране и изпълнение на файлове на базата на меню. Грешките при компилиране да се записват в отделен файл. Това с създаването и редактиране съм го направил. С компилирането също мисля че е направено, обаче това с изпълнение на файл не съм. И до колкото разбирам примерно избирам от менюто за изпълнение на файл и пиша името и той да ми стартира скрипта. Поне аз така го разбирам. И мисля че това не трябва да се прави с готови функции, а един вид аз да я напиша функцията
13  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Mar 30, 2018, 10:13
Добре направих го, обаче имам друг въпрос как да направя пак скрипт които да изпълнява друг скрипт. Примерно пускам скрипта и като напиша име на друг скрипт да ми го изпълни него.
14  Linux секция за начинаещи / Настройка на програми / Re: Bash script -: Mar 29, 2018, 19:42
Аз имам предвид няма ли как да се направи без такива опции като cat и другите. Смисъл без вградени функции, а нещо като се използват -f -a. A също не може ли пак да се създаде скрипт и като го пуснеш и напишеш името на файла той да ти го отваря
15  Linux секция за начинаещи / Настройка на програми / Bash script -: Mar 29, 2018, 19:14
Здравейте искам да попитам дали мога да създам файл без да използвам cat. Смисъл такъв да се напише скрипт и като го пусна да се създава празен файл
Страници: [1]