Шуурхай хариулт: Линукс дээрх stdout болон stderr гэж юу вэ?

Командаас бүрхүүл рүү текстийн гаралтыг stdout (стандарт гадагш) урсгалаар дамжуулдаг. Тушаалаас гарсан алдааны мессежийг stderr (стандарт алдаа) урсгалаар дамжуулдаг.

Stdout ба stderr гэж юу вэ?

Компьютерийн програмчлалд стандарт урсгалууд нь компьютерийн программ ажиллаж эхлэх үед болон түүний орчин хоорондын харилцан холбогдсон оролтын болон гаралтын холбооны сувгууд юм. Гурван оролт/гаралтын (I/O) холболтыг дуудна стандарт оролт (stdin), стандарт гаралт (stdout) ба стандарт алдаа (stderr).

Линукс дээрх stdout гэж юу вэ?

Стандарт гаралт, заримдаа stdout гэж товчилдог тушаалын мөрийн программуудаар бүтээгдсэн өгөгдлийн стандартчилсан урсгал руу (өөрөөр хэлбэл, бүх текст горимын програмууд) Линукс болон бусад Unix-тэй төстэй үйлдлийн системүүд. ... Энэ тохиолдолд одоогийн директор доторх файл бүрийг аргумент болгон авч үзэхийг файлын командыг хэлдэг.

stdout гэж юу вэ?

Стандарт гаралт гэж нэрлэгддэг Stdout нь процессын гаралтыг бичиж болох анхдагч файлын тодорхойлогч. Linux, macOS X, BSD зэрэг Unix-тэй төстэй үйлдлийн системүүдэд stdout нь POSIX стандартаар тодорхойлогддог. Түүний анхдагч файлын тодорхойлогчийн дугаар нь 1. Терминал дээр стандарт гаралт нь хэрэглэгчийн дэлгэц дээр өгөгдмөл болно.

Линукс дээрх stderr тушаал гэж юу вэ?

Стандарт алдаа гэж нэрлэгддэг Stderr нь Процесс нь алдааны мессеж бичих боломжтой анхдагч файлын тодорхойлогч. Linux, macOS X, BSD зэрэг Unix-тэй төстэй үйлдлийн системүүдэд stderr нь POSIX стандартаар тодорхойлогддог. … Терминал дээр хэрэглэгчийн дэлгэцийн стандарт алдаа нь анхдагч байдлаар гарч ирдэг.

Би stderr-г хэрхэн дахин чиглүүлэх вэ?

Stderr-г дахин чиглүүлэхийн тулд танд хэд хэдэн сонголт байна:

  1. stdout-г нэг файл руу, stderr-г өөр файл руу дахин чиглүүл: команд > гадагш 2>алдаа.
  2. stdout-г файл руу дахин чиглүүлэх ( >out ), дараа нь stderr-г stdout ( 2>&1 ): команд >out 2>&1.

stdout-д stderr орсон уу?

Хэрэв миний ойлголт зөв бол stdin нь тухайн программ нь тухайн процесст даалгавраа ажиллуулах хүсэлтдээ бичдэг файл, stdout нь цөмийн гаралтаа бичих файл ба түүнээс мэдээлэл авахыг хүссэн процесс, мөн stderr нь бүх үл хамаарах зүйлсийг оруулсан файл юм.

Би Линукс дээр stderr-г хэрхэн олох вэ?

Ихэвчлэн STDOUT болон STDERR хоёулаа таны терминал руу гарна. Гэхдээ аль алиныг нь дахин чиглүүлэх боломжтой. Жишээлбэл, CGI скриптээр STDERR руу илгээсэн өгөгдөл нь ихэвчлэн вэб серверийн тохиргоонд заасан бүртгэлийн файлд дуусдаг. Линукс систем дээр STDERR-ийн талаарх мэдээллийг программ авах боломжтой.

Линукс дээр & нь юу вэ?

The & тушаалыг далд ажиллуулна. man bash-аас: Хэрэв командыг удирдлагын оператор & зогсоовол бүрхүүл нь тушаалыг арын хэсэгт дэд бүрхүүлд гүйцэтгэдэг. Бүрхүүл нь тушаалыг дуусгахыг хүлээхгүй бөгөөд буцах төлөв нь 0 байна.

Линукс дээр stdout хаана явдаг вэ?

Процесс үүсгэх үед бий болсон стандарт гаралт, консол, таны терминал эсвэл X терминал руу очно. Гаралтыг хаашаа илгээх нь процесс хаанаас үүссэнээс шууд хамаарна. Энэ нь файлыг анхдагчаар бидний стандарт гаралт, өөрөөр хэлбэл консол эсвэл терминалын дэлгэц рүү [холбох] болно.

printf stdout руу бичдэг үү?

Ямар ч дуудлага хэвлэх болно stdout руу хэвлэх, while дуудаж fprint while хэвлэх заасан урсгал руу. Дахь жишээ нь Хэрэв та өгвөл хоёр дахь функц дуудагдана хэвлэх stderr руу. Та хоосон мөр хэвлэж байгаа тул аль ч урсгал дээр юу ч хийхгүй, тиймээс ямар ч анхаарал татахуйц зүйл харагдахгүй.

Та stdout руу бичиж чадах уу?

Та гаралтыг stdout руу илгээхээр үүрэг хүлээсэн үедээ уг гаралт хаашаа явахыг хэрэглэгч өөрөө шийдэх болно. Хэрэв та ашигладаг бол хэвлэх(...) (эсвэл түүнтэй адилтгах fprintf(stdout, …) ), та гаралтыг stdout руу илгээж байна, гэхдээ энэ нь хаана дуусах нь миний програмыг хэрхэн ашиглахаас шалтгаална.

Stdout аврагдсан уу?

stdout бол зүгээр л файлын бариул Энэ нь анхдагчаар консолд холбогдсон боловч дахин чиглүүлэх боломжтой.

Энэ бичлэг таалагдсан уу? Найзуудтайгаа хуваалцана уу:
Өнөөдөр үйлдлийн систем