Man page - attributes(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pl ru ro deManual
Π°ΡΡΠΈΠ±ΡΡΡ
ΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠ‘ΠΠΠΠ
Π£ΡΠ»ΠΎΠ²Π½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
ΠΡΡΠ³ΠΈΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
Π‘ΠΠΠ’Π ΠΠ’Π Π’ΠΠΠΠ
ΠΠΠ ΠΠΠΠ
ΠΠΠΠΠΠΠΠΠΠΠΠ
attributes - ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ POSIX
ΠΠΠΠ‘ΠΠΠΠ
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : Π’Π΅ΠΊΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΡΠ°Π·Π΄Π΅Π»Π° Β«POSIX Safety ConceptsΒ» ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GNU C. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π·Π΄Π΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.
Π
ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΠΏΠΎ
ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ
Π΅ΡΡΡ
ΡΠ°Π·Π΄Π΅Π»
ΠΠ’Π ΠΠΠ£Π’Π«,
Π² ΠΊΠΎΡΠΎΡΠΎΠΌ
ΠΎΠΏΠΈΡΠ°Π½ΠΎ
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½
Π»ΠΈ Π²ΡΠ·ΠΎΠ²
ΡΡΠ½ΠΊΡΠΈΠΈ Π²
ΡΠ°Π·Π½ΡΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
.
Π ΡΡΠΎΠΌ
ΡΠ°Π·Π΄Π΅Π»Π΅
Π΄Π»Ρ
ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ
ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅
ΠΎΡΠΌΠ΅ΡΠΊΠΈ
Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ:
MT-Safe
Π€ΡΠ½ΠΊΡΠΈΠΈ Ρ MT-Safe ΠΈΠ»ΠΈ Thread-Safe Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ Π½ΠΈΡΠ΅ΠΉ. MT Π² MT-Safe ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Multi Thread.
ΠΡΠΌΠ΅ΡΠΊΠ° MT-Safe Π½Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΎ, ΡΡΠΎ Π² Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ POSIX, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ MT-Safe ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ MT-Safe. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½ΠΈΡΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄Π²Π΅ MT-Safe ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΡΡΠ³ Π·Π° Π΄ΡΡΠ³ΠΎΠΌ, ΡΠΎ ΡΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠ³ΠΎ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΎΠ±Π΅ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² Π΄ΡΡΠ³ΠΈΡ Π½ΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΡ ΠΈΡΠΏΠΎΡΡΠΈΡΡ.
ΠΠ·-Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ (inline) ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΡ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ GNU C Library Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ. ΠΠ°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ MT-Safety Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π² Π²ΠΈΠ΄ΠΈΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ , ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈΡΡ ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ.
MT-Unsafe
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ MT-Unsafe , Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠ΅Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ .
ΠΡΡΠ³ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ .
Π£ΡΠ»ΠΎΠ²Π½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈΡ Π²ΡΠ·ΠΎΠ²Ρ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ , Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΡΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΠΎΠΎΠ±ΡΠ΅. ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ. Π’ΠΎΠ»ΡΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, Π½Π°ΠΉΠ΄Π΅Π½Ρ ΠΈ ΡΠ½ΡΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅.
|
init |
MT-Unsafe ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ init , Π²ΡΠΏΠΎΠ»Π½ΡΡΡ MT-Unsafe ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΈΡ Π²ΡΠ·ΠΎΠ²Π΅. |
ΠΡΠ·ΠΎΠ² ΡΠ°ΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π° Π² ΠΎΠ΄Π½ΠΎΠ½ΠΈΡΠ΅Π²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΈΡΠ°Π΅ΡΡΡ MT-Unsafe. ΠΡΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΡΠΈΠ½ Π½Π΅Ρ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π΄ΡΡΠ³ΠΈΡ Π½ΠΈΡΠ΅ΠΉ.
|
race |
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ race , ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΡΡΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π° Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌΡ ΡΠ°Π·ΡΡΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ. |
||
|
const |
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ const , Π½Π΅ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ°ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GNU C ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π½ΠΈΠΌ Π±Π΅Π· ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ MT-Unsafe ΡΡΠ½ΠΊΡΠΈΠΉ Ρ race , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΡΠΈΡΠ°ΡΡ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, const ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΡ. ΠΡΠ·ΠΎΠ² ΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΎΡΡΠ°ΡΡΡΡ MT-Unsafe, Π½ΠΎ ΡΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ ΡΡΠΈΡΠ°ΡΡΡΡ MT-Safe (Π½Π° Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΡΠΈΠ½ ΡΡΠΈΡΠ°ΡΡΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. |
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΡΠ»Π΅ const ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΡΠΈΡΠ°ΡΠ΅Π»ΡΡ . Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ, ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, ΠΈ Π·Π°ΡΠΈΡΠΈΡΡ Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ const Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π½Π° Π·Π°ΠΏΠΈΡΡ, Π° Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅.
|
sig |
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ sig , ΠΌΠΎΠ³ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΈΠ³Π½Π°Π»Π° Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π½ΡΠΆΠ΄, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° (ΡΠΊΠ°Π·Π°Π½ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ). |
ΠΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ², ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π» ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅. Π£Π΄Π΅ΡΠΆΠΈΠ²Π°ΠΉΡΠ΅ Π½Π΅ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΌΡΡΡΠ΅ΠΊΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΡ ΠΆΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠΈΠ³Π½Π°Π»; ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π» ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΡΠ»Π΅.
|
term |
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ term , ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: Π²ΡΠ·ΡΠ²Π°ΡΡ tcgetattr (3), ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π°Π³ΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ tcsetattr (3), ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ Π½ΠΈΡΡΡ , ΡΠ΅ΡΡΡΡΡΡ. Π’ΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ term , ΡΡΠΈΡΠ°ΡΡΡΡ MT-Unsafe. |
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΈ ΡΠ΅Π΅Π½ΡΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ Π½ΠΈΠΌ, ΡΠΎ Π΅ΡΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠΈΠ³Π½Π°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ ΠΈΠ»ΠΈ ΡΠΈΠ³Π½Π°Π»Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ. ΠΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ race:tcattr(fd) , Π³Π΄Π΅ fd β ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΠΌΡΡΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΌΡΡΡΠ΅ΠΊΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ.
ΠΡΡΠ³ΠΈΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π°, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ:
|
locale |
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ locale , Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π»ΠΎΠΊΠ°Π»ΠΈ Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ locale , ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅ΡΡ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. |
ΠΡ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ MT-Unsafe, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ const:locale ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ. Π‘ΡΠΈΡΠ°ΡΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½ΠΈΡΠ΅ΠΉ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΈΠ³Π½Π°Π»Π°Ρ , ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π»ΠΎΠΊΠ°Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π² ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ , ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ.
|
env |
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ env , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· getenv (3) ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. |
ΠΡ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ MT-Unsafe, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ const:env ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ. Π‘ΡΠΈΡΠ°ΡΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½ΠΈΡΠ΅ΠΉ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΈΠ³Π½Π°Π»Π°Ρ , ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ Π² ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ , ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ.
|
hostid |
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ hostid , ΡΠΈΡΠ°ΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Β«ID ΡΠ·Π»Π°Β» ΠΌΠ°ΡΠΈΠ½Ρ. ΠΡΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎΠ±ΡΡΠ½ΠΎ, Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«ID ΡΠ·Π»Π°Β», ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΈΡΠ°ΡΡΠ°Ρ Π΅Π³ΠΎ ( gethostid (3)), ΡΡΠΈΡΠ°Π΅ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠ°Ρ Π΅Π³ΠΎ ( sethostid (3)), ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ const:hostid , ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅. ΠΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ Π² ΠΌΠ°ΡΡΡΠ°Π±Π΅ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°). |
sigintr
MT-Safety ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ sigintr , ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π΄Π°Π½Π½ΡΡ _sigintr Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GNU C Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ MT-Unsafe, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ const:sigintr ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ. Π‘ΡΠΈΡΠ°ΡΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½ΠΈΡΠ΅ΠΉ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΈΠ³Π½Π°Π»Π°Ρ , ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π² ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ , ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ.
|
cwd |
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ cwd Π² Π²ΠΎΠΏΡΠΎΡΠ°Ρ MT-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠ³ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Ρ. |
ΠΡΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠ°ΠΊ MT-Unsafe, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, nftw (3) Ρ FTW_CHDIR ), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΏΡΡΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, openat (2)).
:ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π³ΡΡΠΏΠΏ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ race ΠΈ const , ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ·ΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΈΠ³Π½Π°Π»Π°, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° sig . Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊ lock ΠΈ corrupt .
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΠΈΠΌΠ΅Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ, ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ :buf(arg) β Π±ΡΡΠ΅Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ arg , ΠΈΠ»ΠΈ :tcattr(fd) β Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° fd .
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π³ΡΡΠΏΠΏ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅.
/ΡΡΠ»ΠΎΠ²ΠΈΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ· Π²ΠΎΠ²Π»Π΅ΡΡΠ½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, /!ps ΠΈ /one_per_line ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ ΡΡΠΎΡΡΠΈΠΉ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ps ΡΠ°Π²Π΅Π½ NULL ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ one_per_line Π½Π΅ ΡΠ°Π²Π½Π° Π½ΡΠ»Ρ.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ, ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ.
Π‘ΠΠΠ’Π ΠΠ’Π Π’ΠΠΠΠ
pthreads (7), signal-safety (7)
ΠΠΠ ΠΠΠΠ
Π ΡΡΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»(ΠΈ) Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> ΠΈ Kirill Rekhov <krekhov.dev@gmail.com>
ΠΡΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ; ΠΎΠ½ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html Π²Π΅ΡΡΠΈΠΈ 3 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ) Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ Π°Π²ΡΠΎΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ°Π²Π°, Π½ΠΎ ΠΠΠ ΠΠΠΠΠ₯-ΠΠΠΠ ΠΠΠ ΠΠΠ’ΠΠ.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ(Π°ΠΌ) ΠΏΠΎ Π΅Π³ΠΎ(ΠΈΡ ) Π°Π΄ΡΠ΅ΡΡ(Π°ΠΌ) ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΡΡΡΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠΎΠ² .