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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 5.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. Теория Вероятностей Задачи
4. Комплексный анализ альтернативных методов разрешения правовых споров
5. Римское право Дигесты1
6. голосова модуляція
7. административное правонарушение Дбдолжна быть СкСкакун Чтобы возбудить дело об ап необходимо осуще
8. Энциклопедия компьютерной безопасности
9. Е часто скрываются весьма опасные вещества
10. контрольная работа по физике 10 класс