Предмет: Информатика,
автор: Gogasg
Помогите решить хоть что-нибудь.
1. Как управлять правами доступа пользователей к файлам и директориям в ОС UNIX? Приведите соответствующие команды Shell и системные вызовы.
2. Составьте UNIX-программу на языке С, порождающую в качестве дочернего процесса свою копию и ожидающую ее завершения.
3. Как запустить и завершить фоновый (резидентный) процесс в UNIX?
4. Составьте программу на языке Shell, использующую оператор if.
5. Составьте UNIX программу на языке С, порождающую дочерний процесс и передающую ему данные по именованному каналу.
6. Произведите сравнение основных функций создания нового процесса в ОС Windows.
Ответы
Автор ответа:
0
1. Права доступа управляются с помощью утилиты chmod.
3. Фоновый процесс запускается, как и все остальные, только в конце ставится знак &Завершается процесс командой kill. Например:
kill -15 4213
где параметр -15 один из типов завершения программы, а 4213 его pid.
-15 (sigterm) — попытка осуществить завершение работы так, как это произошло бы при нормальных условиях.
-9 (kill) — принудительное завершение. Самый грубый метод. Гарантированно «убивает» процесс без возможности его корректного завершения.
(но есть и другие параметры)
4. Сравнение двух чисел.
#!/bin/bash
read -p "Введите первое число : " a
read -p "Введите первое число : " b
if [ $a != $b ]
then
echo "Числа $a и $b не равны."
else
echo "Числа $a и $b равны."
3. Фоновый процесс запускается, как и все остальные, только в конце ставится знак &Завершается процесс командой kill. Например:
kill -15 4213
где параметр -15 один из типов завершения программы, а 4213 его pid.
-15 (sigterm) — попытка осуществить завершение работы так, как это произошло бы при нормальных условиях.
-9 (kill) — принудительное завершение. Самый грубый метод. Гарантированно «убивает» процесс без возможности его корректного завершения.
(но есть и другие параметры)
4. Сравнение двух чисел.
#!/bin/bash
read -p "Введите первое число : " a
read -p "Введите первое число : " b
if [ $a != $b ]
then
echo "Числа $a и $b не равны."
else
echo "Числа $a и $b равны."
Автор ответа:
0
#include <stdio.h>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
static int received = 0;
void readUsual(int sig)
{
if (sig == SIGUSR1)
{
received = 1;
}
}
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
static int received = 0;
void readUsual(int sig)
{
if (sig == SIGUSR1)
{
received = 1;
}
}
Автор ответа:
0
int main()
{
printf("%sn","Родительский процесс создан.");
printf("PID родительского процесса = %dn",getpid());
signal(SIGUSR1,readUsual);
pid_t pid2 = fork();
if (pid2 < 0)
printf("Дочерний процесс не может быть создан.n");
else
if (pid2==0)
{
printf("PID доченего процесса = %dn",getpid());
while (!received);
printf("Сигнал принят дочерним процессом.n");
}
else
{
kill(pid2,SIGUSR1);
printf("%sn","Родительский процесс завершен.");
while (1);
}
return 0;
}
{
printf("%sn","Родительский процесс создан.");
printf("PID родительского процесса = %dn",getpid());
signal(SIGUSR1,readUsual);
pid_t pid2 = fork();
if (pid2 < 0)
printf("Дочерний процесс не может быть создан.n");
else
if (pid2==0)
{
printf("PID доченего процесса = %dn",getpid());
while (!received);
printf("Сигнал принят дочерним процессом.n");
}
else
{
kill(pid2,SIGUSR1);
printf("%sn","Родительский процесс завершен.");
while (1);
}
return 0;
}
Автор ответа:
0
Я не знаю, что заказать...
Автор ответа:
0
Спасибо ОГРОМНОЕ!!!!
Автор ответа:
0
Как можно с вами связаться ?
Похожие вопросы
Предмет: Русский язык,
автор: Аноним
Предмет: Другие предметы,
автор: Matvey228299291
Предмет: Математика,
автор: dusdwegg3215
Предмет: Математика,
автор: Камилла771
Предмет: Алгебра,
автор: aydan2002