Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What exactly is a "Console"?

Tags:

c#

windows

I am trying to writing a console application. It has its original console, let's name it console A. And I want this application to do the following things via C#:

  1. Open another console B in another thread, then get input from A and output it to B;
  2. type a command in A, such as dir, and show the output in B;

while doing the above things (still not done yet. X_X ), I find myself lack a through understanding of what a console window is, and how it is assigned to a console application, especially the very first console when my console application starts to run. Could some one shed some light on me?

Is console window physically a memory area in the video memory? Or something else? Could different threads within the same process have different console of its own for its own I/O?

Many thanks.

Now I am using one console application to start another console application in a new process. Thus I can have 2 consoles output at the same time.


My understanding now is that, for Windows OS, a console is a special window, and it's a system resource that OS assigned to the application without-a-UI as a necessary user interface. Windows OS handles the wiring between the system-prepared console window with our UI-less application.

like image 725
smwikipedia Avatar asked Feb 25 '10 14:02

smwikipedia


1 Answers

In Windows terms, a Console is a textual GUI window that you see when you run "cmd.exe". It allows you to write text to, and read text from, a window without the window having any other UI chrome such as toolbars, menus, tabs, etc,..

To get started you'll want to load Visual Studio, create a new project and choose "Console Application". Change the boilerplate code that Visual Studio produces to:

using System;
using System.Text;

namespace MyConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Hello, world!");
            Console.ReadKey();
        }
    }
}

When you run your application, a console window will open with the text "Hello, world!" and it'll stay open until you press a key. That is a console application.

Is console window physically a memory area in the video memory? Or something else?

It's not physically a memory area in video memory, it's "something else". The Wikipedia Win32 console page gives a fairly robust descrption of the ins and outs.

like image 123
Rob Avatar answered Oct 07 '22 01:10

Rob