Упражнение 13.51. Создайте простейший командный интерпретатор.
uses dos;
var
cmd:string;
begin
while true do
begin
write('> ');
readln(cmd);
if cmd='exit' then
break
else
begin
cmd:='-c '+cmd;
writeln('Введена команда ',cmd);
exec('/bin/sh',cmd);
end;
end;
end.
Упражнение 13.52. Создайте программу, выводящую установленные для процесса ограничения.
uses linux;
const
_SC_ARG_MAX=1;
_SC_CHILD_MAX=2;
_SC_CLK_TCK=3;
_SC_NGROUPS_MAX=4;
_SC_OPEN_MAX=5;
_SC_STREAM_MAX=6;
_SC_TZNAME_MAX=7;
_SC_JOB_CONTROL=8;
_SC_SAVED_IDS=9;
_SC_REALTIME_SIGNALS=10;
_SC_PRIORITY_SCHEDULING=11;
_SC_TIMERS=12;
_SC_ASYNCHRONOUS_IO=13;
_SC_PRIORITIZED_IO=14;
_SC_SYNCHRONIZED_IO=15;
_SC_FSYNC=16;
_SC_MAPPED_FILES=17;
_SC_MEMLOCK=18;
_SC_MEMLOCK_RANGE=19;
_SC_MEMORY_PROTECTION=20;
_SC_MESSAGE_PASSING=21;
_SC_SEMAPHORES=22;
_SC_SHARED_MEMORY_OBJECTS=23;
_SC_AIO_LISTIO_MAX=24;
_SC_AIO_MAX=25;
_SC_AIO_PRIO_DELTA_MAX=26;
_SC_DELAYTIMER_MAX=27;
_SC_MQ_OPEN_MAX=28;
_SC_MQ_PRIO_MAX=29;
_SC_VERSION=30;
_SC_PAGESIZE=31;
_SC_RTSIG_MAX=32;
_SC_SEM_NSEMS_MAX=33;
_SC_SEM_VALUE_MAX=34;
_SC_SIGQUEUE_MAX=35;
_SC_TIMER_MAX=36;
_SC_BC_BASE_MAX=37;
_SC_BC_DIM_MAX=38;
_SC_BC_SCALE_MAX=39;
_SC_BC_STRING_MAX=40;
_SC_COLL_WEIGHTS_MAX=41;
_SC_EQUIV_CLASS_MAX=42;
_SC_EXPR_NEST_MAX=43;
_SC_LINE_MAX=44;
_SC_RE_DUP_MAX=45;
_SC_CHARCLASS_NAME_MAX=46;
_SC_2_VERSION=47;
_SC_2_C_BIND=48;
_SC_2_C_DEV=49;
_SC_2_FORT_DEV=50;
_SC_2_FORT_RUN=51;
_SC_2_SW_DEV=52;
_SC_2_LOCALEDEF=53;
_SC_PII=54;
_SC_PII_XTI=55;
_SC_PII_SOCKET=56;
_SC_PII_INTERNET=57;
_SC_PII_OSI=58;
_SC_POLL=59;
_SC_SELECT=60;
_SC_UIO_MAXIOV=61;
_SC_IOV_MAX=62;
_SC_PII_INTERNET_STREAM=63;