Ich habe ein Programm, in dem ich ioctl(0, TIOCGWINSZ, (struct winsize *))
verwende, um die Größe des Terminalfensters zu finden, in dem das Programm ausgeführt wird. Wenn ich es im Terminal ausführe, funktioniert es gut, aber wenn ich LLDB verwende, gibt ioctl
ein Fenstergröße von 0 x 0LLDB ioctl Probleme
Beispiel:
#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;
}
Terminal-Transkript:
$ 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)
Hat jemand, warum dies geschieht, oder eine Möglichkeit, dies zu beheben?
Vielen Dank im Voraus.
Danke, der 'Prozess-Start -tty' hat super funktioniert! – Xenon