У меня есть программа, в которой я использую ioctl(0, TIOCGWINSZ, (struct winsize *))
, чтобы найти размер окна терминала, в котором работает программа. Когда я запускаю его в терминале, он отлично работает, но когда я использую LLDB, ioctl
дает размер окна 0 х 0Проблемы с LLDB ioctl
Пример:
#include <unistd.h>
#include <sys/ioctl.h>
#include <stdio.h>
int main(){
struct winsize tty_window_size;
ioctl(STDOUT_FILENO, TIOCGWINSZ, &tty_window_size);
printf("Rows: %i, Cols: %i\n", tty_window_size.ws_row, tty_window_size.ws_col);
return 0;
}
Терминал транскрипт:
$ clang test.c
$ ./a.out
Rows: 24, Cols: 80
$ lldb ./a.out
(lldb) target create "./a.out"
Current executable set to './a.out' (x86_64).
(lldb) r
Process 32763 launched: './a.out' (x86_64)
Rows: 0, Cols: 0
Process 32763 exited with status = 0 (0x00000000)
ли исправить это кто-нибудь, почему это происходит, или способ?
Заранее спасибо.
Спасибо, 'process launch -tty' отлично поработал! – Xenon