
- •41. Программные семафоры с внутренним счетчиком в posix
- •Int sem_init(sem_t *sem, int pshared, int value);
- •42. Программные семафоры с внутренним счетчиком в System V
- •43. Проблема тупиков при взаимодействии программных единиц
- •44. Средства реализации виртуальной памяти; страничная переадресация.
- •45. Средства реализации виртуальной памяти; стратегия подкачки страниц
- •46. Системные функции распределения памяти в Unix
- •Void* malloc(size_t nbytes)
- •Void* MapViewOfFile(handle hFileMappingObject, dword DesiredAccess, dword OffsetHigh, dword OffsetLow, dword size)
- •49. Совместное использование оперативной памяти в Unix
- •Int shmget(key_t key, int size, int flag),
- •53. Программный опрос файловой системы в Windows
- •54. Программный опрос файловой системы в Unix
- •Int closedir(dir* dirptr),
- •Void rewinddir(dir* dirptr),
- •55. Получение информации об ошибках выполнения системной функции Windows
- •56. Получение информации об ошибках выполнения системной функции Unix.
- •Int имяфункции(список_аргументов),
- •Void perror(const char *s)
- •57. Групповое выполнение и фоновый запуск команд в командных оболочках ос.
- •59. Использование переменных в командных оболочках ос.
- •60. Ввод и вывод данных в командных сценариях.
57. Групповое выполнение и фоновый запуск команд в командных оболочках ос.
Групповое выполнение:
В командной строке Windows NT/2000/XP можно использовать специальные символы, которые позволяют вводить несколько команд одновременно и управлять работой команд в зависимости от результатов их выполнения. С помощью таких символов условной обработки можно содержание небольшого пакетного файла записать в одной строке и выполнить полученную составную команду.
Используя символ амперсанда &, можно разделить несколько утилит в одной командной строке, при этом они будут выполняться друг за другом. Например, если набрать команду DIR & PAUSE & COPY /? и нажать клавишу <Enter>, то вначале на экран будет выведено содержимое текущего каталога, а после нажатия любой клавиши — встроенная справка команды COPY.
Символ ^ позволяет использовать командные символы как текст, то есть при этом происходит игнорирование значения специальных символов. Например, если ввести в командной строке
ECHO Абв & COPY /?
и нажать клавишу <Enter>, то произойдет выполнение подряд двух команд: ECHO Абв и COPY /? (команда ECHOвыводит на экран символы, указанные в командной строке после нее).
Выполнение программ в фоновом режиме
Большинство оболочек представляют возможность запуска и последующего выполнения программ как фоновых процессов. Запуск команды в качестве фоновой означает, что команда выполняется в оперативной памяти, в то время как управление командной строкой оболочки возвращается вашей консоли. Это удобный способ работы в Linux, в особенности, если вы работаете на отдельном терминале, вам не достает места на экране при работе в Х11 или ваша система обладает избытком оперативной памяти. Такие задачи, как сортировка больших файлов или поиск в каталогах и других файловых системах, неплохие кандидаты на выполнение в фоновом Режиме.
Несмотря на то, что Linux представляет возможность работы с виртуальными консолями, а многочисленные диспетчеры окон Х11 дают возможность работать с разными рабочими столами, в процессе работы с Linux вы, скорее всего, неоднократно будете выполнять программы в фоновом режиме.
Для запуска программ в фоновом режиме в конец командной строки добавляется символ амперсанда (&). Например, для запуска еще одной программы с терминала Х11 вам может потребоваться запустить эту программу в фоновом режиме, чтобы ваш текущий терминал оставался свободным для вывода: # rxvt &
Эта команда запускает терминал rxvt, и приглашение вашей командной строки вновь становится свободным для ввода.
59. Использование переменных в командных оболочках ос.
Среда командной оболочки Cmd.exe определяется переменными, задающими поведение командной оболочки и операционной системы. Имеется возможность определить поведение среды командной оболочки или среды всей операционной системы с помощью двух типов переменных среды: системных и локальных. Системные переменные среды определяют поведение глобальной среды операционной системы. Локальные переменные среды определяют поведение среды в данном экземпляре Cmd.exe. Системные переменные среды заданы заранее в операционной системе и доступны для всех процессов Windows XP. Только пользователи с привилегиями администратора могут изменять эти переменные. Эти переменные наиболее часто используются в сценариях входа в систему. Локальные переменные среды доступны, только когда пользователь, для которого они были созданы, вошел в систему. Локальные переменные из куста HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды операционной системы. В следующем списке представлены различные типы переменных в порядке убывания приоритета.
- Встроенные системные переменные
- Системные переменные куста HKEY_LOCAL_MACHINE
- Локальные переменные куста HKEY_CURRENT_USER
- Все переменные среды и пути указаны в файле Autoexec.bat.
- Все переменные среды и пути указаны в сценарии входа в систему (если он имеется).
- Переменные, используемые интерактивно в сценарии или пакетном файле