У вас вопросы?
У нас ответы:) SamZan.net

Задание- Неоверлейный вызов процессапотомка из процессародителя с помощью функции spwnl- - Не

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 27.4.2025

МИНИСТЕРСТВО ОБРАЗОРВАНИЯ И НАУКИ УКРАИНЫ

Донецкий национальный технический университет

Кафедра КИ

Отчёт

по лабораторной работе №5

по курсу «СПО»

Выполнила:

студентка гр. КС-09а

Процько Е.Г.

Проверила:

Чередникова О.Ю.

2011

Задание:

*  Неоверлейный вызов процесса-потомка из процесса-родителя

 с помощью функции spawnl()*/

/*  Неоверлейный вызов процесса-потомка из процесса-родителя

 с помощью функции spawnl()*/

#include<process.h>

#include<stdio.h>

#include<dos.h>

#include"mcb.c"

int main(void)

{ int stat,x,y;

  char sx[5];

  char sy[5];

  printf("\nVvedite zna4eniya x i y dlya rasheta formuli z=x+5/y");

  scanf("%d",&x);

  scanf("%d",&y);

  itoa(x,sx,10);

  itoa(y,sy,10);

  printf("\nRaspredelenie pamyati do zagruzki potomka:\n");

  mcbfun();

  printf("\nVizov porogdennogo processa\n");

  stat = spawnlp(P_OVERLAY, "FUNC.EXE", "FUNC.EXE",sx,sy,NULL);

  if (stat == -1)

    { perror("Error");

return 1;

    }

  else

    { if (stat == 1) printf("\nNedostato4no argumentov\n");

      printf("\nRaspredelenie pamyati posle vozvrata:\n");

      mcbfun();

    }

 return 0;

}

/* потомок FUNC.c*/

#include<stdio.h>

#include<dos.h>

#include<stdlib.h>

#include"mcb.c"

int main(int argc, char *argv[])

{

int f;

if(_osmajor >= 3)

  printf("Process potomok iz faila %s zapushen\n", argv[0]);

if(argc < 3) return 1;

 printf("Dannie: x = %s, y = %s",(argv[1]),(argv[2]));

f=5/atoi(argv[2]);

f+=atoi(argv[1]);

printf("Funkziya z = %d\n",f);getch();

printf("\nRaspredelenie pamyati posle zagruzki potomka:\n");

mcbfun();

return 0;

}

/* файл mcb.c*/

#include<math.h>

#include<conio.h>

#include<stdio.h>

#include<dos.h>

union REGS reg;

struct SREGS sregs;

typedef struct

   {

     unsigned char marker;

     unsigned int owner;

     unsigned int sizePara;

     unsigned char dummy[3];

     unsigned char name[8];

   }mcb;

mcb far *ptr;

void mcbfun(void)

{ unsigned int segm, i;

  reg.h.ah = 0x52;

  intdosx(&reg, &reg, &sregs);

  segm = peek(sregs.es, reg.x.bx - 2);

  printf("  Adress MCB  | Type | Razmer bloka | Imya vladelec\n"

 "             |     |                 | pamyati (bait)\n");

  printf("--------------------------------------------------\n");

  ptr = MK_FP(segm, 0);

  printf("  %04X:0000  |  %c  |    %8lu     |", segm,ptr->marker,

     (long)ptr->sizePara*16);

  if(!ptr->owner){printf("Blok svoboden");delay(100);}

  else

    if(( _osmajor >= 4) &&  (segm + 1) == ptr->owner)

     { for(i=0; i<=7; i++)

printf("%c", ptr->name[i]); }

  delay(100);

  printf("\n");

  while( ptr->marker == 'M')

   { segm = segm + ptr->sizePara + 1;

     ptr = MK_FP(segm, 0);

  printf("  %04X:0000  |  %c  |    %8lu     |", segm,ptr->marker,

      (long)ptr->sizePara * 16);

  if(!ptr->owner){printf("Blok svoboden");delay(300);}

    else if((_osmajor >= 4) && ( segm + 1) == ptr->owner)

      { for(i=0; i<=7; i++) printf("%c", ptr->name[i]);}

    delay(300);printf("\n");

  }getch();

}




1. Паллиативная помощь
2. Вещи и классификация вещей в римском праве
3. Юриспруденция Издательство НОРМА Москва 2002 Глава 21 8 главы 10 7 главы 12 4 и 6 главы 13 2 гла
4. ЛЕКЦИЯМ ПО БИОЭТИКЕ Рекомендуется для направлений подготовки по специальности 030401 Клиническая
5. Th grde. There re two more kids in the fmily besides me my elder brother Oleg nd my younger sister Mrij
6. Юрию Милославскому
7. тематика рефератов- История развития психосоматической медицины
8. Социальное развитие России на карте мира
9. Информация и информационный продукт
10. Дипломная работа- Демокритические заметки