Fórum Ubuntu CZ/SK
		Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: pxjava  02 Srpna 2008, 11:22:28
		
			
			- 
				ahoj, kdyz v terminalu zadam prikaz set, tak me to vyhodi spoustu systemovych promenych, mezi kterejma je i COLUMN a LINES, to by se siklo pro lepsi vystup programu, aby to pri malym okne "nepretejkalo" na dalsi radek a pri velkym okne to zase vyuzilo, ale nevim jak do programu tyto promeny dostat, nevite nahodou?
			
 
			
			- 
				vazne nikdo nevi jak v c++ zjistit aktualni rozmery terminalu?
			
 
			
			- 
				
vazne nikdo nevi jak v c++ zjistit aktualni rozmery terminalu?
dva dni a google stále nic?
putenv(), getenv(), environ
Na co aktuální rozměry terminalu?
			 
			
			- 
				Tak jsem si to zkusil a radím špatně - putenv(), getenv(), environ
vám moc nepomůže.
Toto pracuje s globálními proměnnými prostředí 
printenv
env
ale ne s lokálními které jsou zahrnuté do výpisu
set
jak se dostat k lokálním proměnným terminálu ze kterého byl spuštěn program netuším
hodnoty terminálu platné pří spuštění programu se mu dají se dají předat jako parametry při spuštění přes 
echo $LINES
Ale v okamžiku kdy se změní velikost okna terminálu tak je poslána zpráva SIGWINCH
a pokud má bash nastaven checkwinsize=on
tak rozměry COLUMNS a LINES přepočítá.
Jak se k těmto lokálním proměnným dostat netuším.
viz ~/.bashrc
shopt -s checkwinsize
			 
			
			- 
				Na složitější práci s terminálem je dobrá knihovna ncurses, ale nevím, jak to má s C++. Určitě funguje v C. Zkuste se podívat sem: http://ndk-xx.sourceforge.net/
			
 
			
			- 
				kdyby se to nekomu hodilo: nahodnym brouzdanim sem nasel funkci getenv() v knihovne cstdlib ktere je predan jeden parametr a to je nazev promene (napr.: getenv("HOME");), ma to pouze jednu vadu, ze to bere jen promene pod prikazem printenv, jinak dekuju za tip na knihovnu ncurses