Skip to main content

Buksan ang Linux Command at Unix Command

How to Use Termux for Hacking with Android | terminal | White Hat | Termux colors. (Hunyo 2025)

How to Use Termux for Hacking with Android | terminal | White Hat | Termux colors. (Hunyo 2025)
Anonim

Buod

# isama # isama # isama int open (const char * pathname , int flags ); int open (const char * pathname , int flags , mode_t mode ); int creat (const char * pathname , mode_t mode );

Paglalarawan

Angbukas () Ang sistema ng tawag na linux command ay ginagamit upang i-convert ang isang pathname sa isang file descriptor (isang maliit, di-negatibong integer para sa paggamit sa kasunod na I / O tulad ng basahin, isulat, atbp.). Kapag ang tawag ay matagumpay, ang file descriptor na ibalik ay ang pinakamababang file descriptor na hindi kasalukuyang bukas para sa proseso. Ang tawag na ito ay lumilikha ng isang bagong bukas na file, hindi ibinahagi sa anumang iba pang proseso. (Ngunit nagbabahagi ng mga bukas na file ay maaaring lumabas sa pamamagitan ngtinidor(2) system call.) Ang bagong file descriptor ay nakatakda upang manatiling bukas sa mga function ng exec (tingnan angfcntl(2)). Ang file offset ay nakatakda sa simula ng file.

Ang parameter flags ay isa saO_RDONLY, O_WRONLY oO_RDWR na humiling ng pagbubukas ng file na read-only, write-only o read / write, ayon sa pagkakabanggit, bitwise- o 'd may zero o higit pa sa mga sumusunod:

O_CREAT

Kung ang file ay hindi umiiral ito ay malilikha. Ang may-ari (user ID) ng file ay naka-set sa epektibong user ID ng proseso. Ang pagmamay-ari ng grupo (grupo ID) ay nakatakda sa alinman sa epektibong ID ng grupo ng proseso o sa ID ng grupo ng direktoryo ng magulang (depende sa uri ng filesystem at mga pagpipilian ng bundok, at ang mode ng direktoryo ng magulang, tingnan ang hal. mga pagpipilian bsdgroups at sysvgroups ng ext2 filesystem, tulad ng inilarawan sabundok(8)).

O_EXCL

Kapag ginamit saO_CREAT, kung mayroon nang file na ito ay isang error at angbukas mabibigo. Sa kontekstong ito, umiiral ang isang makahulugan na link, anuman ang mga punto nito.O_EXCL ay nasira sa mga sistema ng file ng NFS, ang mga program na umaasa sa ito para sa pagganap ng mga gawain sa pagla-lock ay maglalaman ng kondisyon ng lahi. Ang solusyon para sa pagsasagawa ng pag-lock ng atomic file gamit ang lockfile ay upang lumikha ng isang natatanging file sa parehong fs (hal., Kasama ang hostname at pid), gamitin ang link (2) upang gumawa ng isang link sa lockfile. Kunglink () Bumalik 0, ang kandado ay matagumpay. Kung hindi, gamitin stat(2) sa natatanging file upang suriin kung ang bilang ng link nito ay tumaas sa 2, kung saan ang kandado ay matagumpay din.

O_NOCTTY

Kung pathname ay tumutukoy sa isang terminal aparato --- makitatty(4) --- hindi ito magiging kontrol sa terminal ng proseso kahit na wala ang proseso.

O_TRUNC

Kung umiiral na ang file at regular na file at nagbibigay-daan ang bukas na mode sa pagsulat (ibig sabihin, ay O_RDWR o O_WRONLY) ito ay pinutol sa haba 0. Kung ang file ay isang FIFO o terminal device file, ang O_TRUNC flag ay hindi pinansin. Kung hindi man, ang epekto ng O_TRUNC ay hindi natukoy. (Sa maraming bersyon ng Linux ito ay hindi papansinin; sa iba pang mga bersyon, ito ay babalik ng isang error.)

O_APPEND

Ang file ay binuksan sa append mode. Bago ang bawat isaisulat, ang file pointer ay nakaposisyon sa dulo ng file, na parang maylseek. O_APPEND maaaring humantong sa masira na mga file sa mga sistema ng file ng NFS kung higit sa isang proseso ang nagdadagdag ng data sa isang file nang sabay-sabay. Ito ay dahil hindi sinusuportahan ng NFS ang appending sa isang file, kaya ang kernel ng kliyente ay dapat gayahin ito, na hindi maaaring gawin nang walang kondisyon ng lahi.

O_NONBLOCK oO_NDELAY

Kung posible, mabubuksan ang file sa non-blocking mode. Ni angbukas ni anumang kasunod na mga operasyon sa file descriptor na ibabalik ay magdudulot ng paghihintay sa proseso ng pagtawag. Para sa paghawak ng mga FIFO (pinangalanang mga tubo), tingnan dinfifo(4). Ang mode na ito ay hindi kailangang magkaroon ng anumang epekto sa mga file maliban sa FIFOs.

O_SYNC

Ang file ay binuksan para sa kasabay I / O. Anumanisulats sa resultang file descriptor ay hadlangan ang proseso ng pagtawag hanggang ang data ay pisikal na nakasulat sa kalakip na hardware. Tingnan ang MGA RESTRICTIONS sa ibaba, bagaman.

O_NOFOLLOW

Kung pathname ay isang makasagisag na link, at pagkatapos ay bukas nabigo. Ito ay isang extension ng FreeBSD, na idinagdag sa Linux sa bersyon 2.1.126. Ang mga simbolikong link sa mga naunang bahagi ng pathname ay susundan pa rin. Ang mga header mula sa glibc 2.0.100 at sa paglaon ay nagsasama ng isang kahulugan ng bandila na ito; Ang mga kernel bago 2.1.126 ay huwag pansinin ito kung ginamit .

O_DIRECTORY

Kung pathname ay hindi isang direktoryo, maging sanhi ng bukas na mabibigo. Ang bandila na ito ay partikular sa Linux, at idinagdag sa kernel version 2.1.126, upang maiwasan ang mga problema sa pagtanggi sa serbisyo kungopendir(3) ay tinatawag sa isang FIFO o tape device, ngunit hindi dapat gamitin sa labas ng pagpapatupad ngopendir.

O_DIRECT

Subukang bawasan ang mga epekto ng cache ng I / O patungo at mula sa file na ito. Sa pangkalahatan ito ay magpapahina sa pagganap, ngunit ito ay kapaki-pakinabang sa mga espesyal na sitwasyon, tulad ng kapag ang mga application ay gumawa ng kanilang sariling caching. Ang file I / O ay direktang ginagawa sa / mula sa mga buffer ng espasyo ng gumagamit. Ang I / O ay kasabay, ibig sabihin, sa pagkumpleto ng basahin(2) oisulat(2) sistema ng tawag, ang data ay garantisadong na nailipat na. Ang mga sukat ng paglipat, at ang pag-align ng buffer ng gumagamit at ang offset ng file ay dapat na ang lahat ng mga multiple ng lohikal na laki ng block ng system file.Ang bandilang ito ay sinusuportahan sa isang bilang ng mga sistemang tulad ng Unix; Ang suporta ay idinagdag sa ilalim ng Linux sa kernel version 2.4.10.Ang isang katulad na interface ng semantically para sa mga bloke na aparato ay inilarawan saraw(8).

O_ASYNC

Gumawa ng isang senyas (SIGIO bilang default, ngunit ito ay maaaring mabago sa pamamagitan ngfcntl(2)) kapag ang input o output ay magiging posible sa file descriptor na ito. Ang tampok na ito ay magagamit lamang para sa mga terminal, palsipikado-terminal, at mga socket. Tingnanfcntl(2) para sa mga karagdagang detalye.

O_LARGEFILE

Sa mga 32-bit na sistema na sumusuporta sa Malaking File System, payagan ang mga file na ang laki ay hindi maaaring katawanin sa 31 bits na mabubuksan.

Ang ilan sa mga opsyonal na flag na ito ay maaaring mabago gamitfcntl matapos mabuksan ang file.

Ang argumento mode tinutukoy ang mga pahintulot upang gamitin sa kaso ng isang bagong file ay nilikha. Ito ay binago ng prosesoumask sa karaniwang paraan: ang mga pahintulot ng nilikha na file ay(mode & ~ umask). Tandaan na ang mode na ito ay nalalapat lamang sa mga access sa hinaharap ng bagong nilikha na file; angbukasAng tawag na lumilikha ng isang read-only na file ay maaring ibalik ng isang read / write file descriptor.

Ang mga sumusunod na symbolic constants ay ibinigay para sa mode :

S_IRWXU

00700 user (may-ari ng file) ay nagbasa, nagsusulat at nagpapatupad ng pahintulot

S_IRUSR (S_IREAD)

Binasa ng user na 00400 ang pahintulot

S_IWUSR (S_IWRITE)

00200 user ay sumulat ng pahintulot

S_IXUSR (S_IEXEC)

Pinatupad ng 00100 ang pagpapatunay ng user

S_IRWXG

00070 pangkat ay nagbasa, sumulat at magsagawa ng pahintulot

S_IRGRP

Binasa ng pangkat na 00040 ang pahintulot

S_IWGRP

Isinulat ng pahintulot ang 00020 group

S_IXGRP

Execute permit ang 00010 group

S_IRWXO

00007 iba pa ang bumasa, sumulat at nagpapatupad ng pahintulot

S_IROTH

00004 iba pa ang nagbasa ng pahintulot

S_IWOTH

00002 ang iba ay sumulat ng pahintulot

S_IXOTH

00001 iba pa ang nagpapataw ng pahintulot

mode dapat tukuyin kung kailanO_CREAT nasa flags , at binabalewala sa iba.

creat ay katumbas ngbukas may flags katumbas ngO_CREAT | O_WRONLY | O_TRUNC.

Ibalik ang VALUE

bukas atcreat ibalik ang bagong file descriptor, o -1 kung naganap ang isang error (kung saan, errno ay nakatakda nang naaangkop). Tandaan nabukas maaaring magbukas ng mga espesyal na file ng device, ngunitcreat hindi makagawa ng mga ito - gamitinmknod(2) sa halip.

Sa mga sistema ng file ng NFS na pinagana ang pag-map ng UID,bukas maaaring bumalik ang isang file descriptor ngunit hal. basahin(2) ang mga kahilingan ay tinanggihanEACCES. Ito ay dahil ang client ay gumaganapbukas sa pamamagitan ng pagsuri sa mga pahintulot, ngunit ang pagma-map ng UID ay ginagawa ng server kapag binasa at isulat ang mga kahilingan.

Kung ang bagong file ay nilikha, ang mga patlang ng oras, ctime, mtime nito ay nakatakda sa kasalukuyang oras, at sa gayon ay ang mga patlang ng ctime at mtime ng direktoryo ng magulang. Kung hindi, kung ang file ay nabago dahil sa bandila ng O_TRUNC, ang mga patlang ng ctime at mtime ay nakatakda sa kasalukuyang oras.

Mga Mali

EEXIST

pathname umiiral na atO_CREAT atO_EXCL ay ginamit.

EISDIR

pathname ay tumutukoy sa isang direktoryo at ang pag-access hiniling kasangkot pagsulat (iyon ay,O_WRONLY oO_RDWR ay nakatakda).

EACCES

Hindi pinapayagan ang hiniling na pag-access sa file, o isa sa mga direktoryo sa pathname hindi pinapayagan ang paghahanap (execute) pahintulot, o ang file ay hindi pa umiiral at isulat ang access sa direktoryo ng magulang ay hindi pinapayagan.

ENAMETOOLONG

pathname ay masyadong mahaba.

ENOENT

Ang O_CREAT ay hindi nakatakda at ang pinangalang file ay hindi umiiral. O, isang bahagi ng direktoryo pathname ay hindi umiiral o isang nakabitin na simbolikong link.

ENOTDIR

Ang isang sangkap na ginamit bilang direktoryo sa pathname ay hindi, sa katunayan, isang direktoryo, oO_DIRECTORYay tinukoy at pathname ay hindi direktoryo.

ENXIO

O_NONBLOCK | Ang O_WRONLY ay nakatakda, ang pinangalanan na file ay isang FIFO at walang proseso ang file na bukas para sa pagbabasa. O kaya, ang file ay isang espesyal na file ng aparato at walang naaangkop na aparato.

ENODEV

pathname ay tumutukoy sa isang espesyal na file ng aparato at walang umiiral na nararapat na aparato. (Ito ay isang Linux kernel bug - sa ganitong sitwasyon ENXIO ay dapat ibalik.)

EROFS

pathname ay tumutukoy sa isang file sa isang read-only na filesystem at sumulat ng access ay hiniling.

ETXTBSY

pathname ay tumutukoy sa isang maipapatupad na imahen na kasalukuyang isinasagawa at isulat ang pag-access ay hiniling.

EFAULT

pathname mga punto sa labas ng iyong naa-access na puwang ng address.

ELOOP

Napakaraming simbolikong mga link ang nakatagpo sa paglutas pathname , oO_NOFOLLOW ay tinukoy ngunit pathname ay isang simbolikong link.

ENOSPC

pathname ay nilikha ngunit ang aparato na naglalaman pathname walang silid para sa bagong file.

ENOMEM

Hindi sapat ang kernel memory.

EMFILE

Ang proseso ay mayroon nang pinakamataas na bilang ng mga file na bukas.

ENFILE

Naabot na ang limitasyon sa kabuuang bilang ng mga file sa system.

Sumasang-ayon ka

SVr4, SVID, POSIX, X / OPEN, BSD 4.3 AngO_NOFOLLOW atO_DIRECTORY Ang mga flag ay partikular sa Linux. Ang isa ay maaaring may upang tukuyin ang_GNU_SOURCE macro upang makuha ang kanilang mga kahulugan.

Mga paghihigpit

Mayroong maraming mga infelicities sa protocol na pinagbabatayan ng NFS, na nakakaapekto sa ibaO_SYNC atO_NDELAY.

Ang POSIX ay nagbibigay ng tatlong iba't ibang mga variant ng naka-synchronize na I / O, na tumutugma sa mga flagO_SYNC , O_DSYNC at O_RSYNC. Sa kasalukuyan (2.1.130) ang mga ito ay lahat magkasingkahulugan sa ilalim ng Linux.