П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 177032 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 74204 раз(а).

Учебник HTML.
Просмотров 73354 раз(а).

Руководство по PHP5.
Просмотров 44229 раз(а).

Хостинг через призму DNS.
Просмотров 50955 раз(а).

Подборка текстов стандартных документов.
Просмотров 44408 раз(а).

Учебник PHP - Самоучитель
Просмотров 50649 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 51071 раз(а).

Внешние атаки...
Просмотров 41380 раз(а).

Учебник PHP.
Просмотров 36598 раз(а).

SSI в примерах.
Просмотров 27460 раз(а).






 
 
| Добавить в избранное | Сделать стартовой Project.Net.Ru | Помощь




Функции

 

Введение

В этом разделе рассматривается поведение программы от вызова до завершения. На протяжении всего раздела мы будем использовать следующий пример:
/* fct.c */

void toto(int i, int j)
{
  char str[5] = "abcde";
  int k = 3;
  j = 0;
  return;
}

int main(int argc, char **argv)
{
  int i = 1;
  toto(1, 2);
  i = 0;
  printf("i=%d\n",i);
}

Назначение этого раздела - объяснить поведение указаных функций по отношению к стеку и регистрам. Некоторые атаки пытаются изменить порядок выполнения программы. Чтобы разобраться в них, полезно знать, что происходит в обычной ситуации.

Выполнение функции разделено на три этапа:

  1. пролог : при входе в функцию, вы сразу готовите путь к выходу из нее, сохраняя состояние стека перед входом и резервируя память, необходимую для выполнения;
  2. вызов функции: при вызове функции, ее параметры помещаются в стек и сохраняется указатель инструкции (IP), позволяя продолжить выполнение инструкции с нужного места после функции;
  3. возврат из функции: все возвращается на свои места как и было до вызова.

Назад | Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru