console etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
console etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

17 Kasım 2015 Salı

Console Metodları

Windows
Grafik Arayüzü Kullanan Uygulamalar
Windows'ta TTY kavramı yok ancak ben yine de  farkı göstermek için yazmak istedim.
Windows'ta başlatılan grafik programı konsol (TTY sayılabilir) ile ilişkilendirilmiyor. cout , printf ile yazılan metinler Visual Studio'nun Output penceresinde görülebilir ancak normal çalışmada kaybolur.

Gösterilmek istenirse uygulama içinden bir konsol başlatmak gerekir. Windows kapsamlı bir Console Functions kütüphanesi sunuyor.

Win32
GetStdHandle
Konsol handle alınır.
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
ShowWindow
Konsol penceresi şöyle büyütülür.
#include<windows.h>

using namespace std;

int main()
{
    system("color 0B");
    ShowWindow(GetConsoleWindow(), SW_MAXIMIZE);
    ...
}
SetConsoleTextAttribute - Renkli Çıktı
Şöyle yapılabilir.
int setColor(const int foreground, const int background)
{
    int Color = foreground + (background * 16);
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, Color);

    return 0;
}
WriteConsole
Konsola metin yazar.

C#
Console Metodları yazısına taşıdım.

23 Ağustos 2014 Cumartesi

Shell ve TTY

Linux
Terminal Uygulamaları
Shell (Kabuk) İle başlatılan uygulamalar TTY ile otomatik olarak ilişkilendirilir. Aşağıdaki şekli buradan aldım ve zaten durumu çok güzel özetliyor.
Dolayısıyla shell (kabuk) tarafından başlatılan her terminal programı shell ile ilişkili olan TTY'yi devralır ve kendisi de aynı TTY arayüzünü kullanmaya başlar. Örnek olarak grep komutunu çalıştırırsak grep uygulamasına onu başlatan kabuğun kullandığı TTYcihazı input,output ve error file descriptorları olarak geçilir.

Grafik Arayüzü Kullanan Uygulamalar
Terminalden başlatılan grafik programları da TTY ile ilişkilendiriliyor. Hatta bu durumda GUI uygulamasında kullanılan printf, cout gibi komutların çıktıları da görülebiliyor.

Windows
Grafik Arayüzü Kullanan Uygulamalar
Console Metodları başlıklı yazıya taşıdım.

Grafik Arayüzü Kullanan Uygulamalara Pipe ile Veri Girmek
Yine aynı şekilde TTY olmadığı için pipe ile girdi vermek te mümkün değil. Aşağıda biraz el emeği gerektiren bir yöntem varç

clip komutu
clip komuyu veriyi biriktirebilir. Örnekte iki dosyanın farkını bulunup clip komutu içinde biriktiriliyor. notepad çalıştırılıp veri Ctrl + V ile notepad'e yapıştırılır.

diff file1.txt file2.txt | clip && notepad