当前位置: 技术问答>linux和unix
linux下C编程问题
来源: 互联网 发布时间:2016-06-04
本文导语: 原先在WIN下用的turboC2.0可以调用graphics.h来画个图形什么的,现在换了fedora10,用gcc编译无法通过。 怎样在linux下加载这些头文件啊? | linux 下没有那些东西 你可以用 qt 或者 gtk 来做那些工...
原先在WIN下用的turboC2.0可以调用graphics.h来画个图形什么的,现在换了fedora10,用gcc编译无法通过。
怎样在linux下加载这些头文件啊?
怎样在linux下加载这些头文件啊?
|
linux 下没有那些东西
你可以用 qt 或者 gtk 来做那些工作
你可以用 qt 或者 gtk 来做那些工作
|
以下摘抄自网络
UNIX下c语言的图形编程--curses.h 函式库
相信您在网路上一定用过如 tin,elm 等工具, 这些软体有项共同的特色,
即他们能利用上下左右等方向键来控制游标的位置. 除此之外, 这些程式
的画面也较为美观. 对 Programming 有兴趣的朋友一定对此感到好奇, 也
许他能在 PC 上用 Turbo C 轻易地写出类似的程式, 然而, 但当他将相同
的程式一字不变地移到工作站上来编译时, 却出现一堆抓也抓不完的错误.
其实, 原因很简单, 他使用的函式库可能在 UNIX 上是没有定义的. 有些
在 Turbo-C 上被广泛使用的一些函式, 可能在 UNIX 上是不被定义的.
为了因应网路上各式各样的终端机形态 (terminal), UNIX 上特别发展出
一套函式库, 专门用来处理 UNIX 上游标移动及萤幕的显示. 这就是本篇
文章要为您介绍的 - curses.h 函式库. 利用这个函式库, 您也可以写出
像 elm 般利用方向键来移动光棒位置的程式. (CCCA 近来所提供的线上选
课程式, 及程式服务界面, 即是笔者利用 curses 发展而成的 )
■ curses 的历史与版本
cureses 最早是由柏克莱大学的 Bill Joy 及 Ken Arnold 所发展出来的.
当时发展此一函式库主要原因是为了提高程式对不同终端机的相容性而设
计的. 因此, 利用 curses 发展出来的程式将和您所使用的终端机无关.
也就是说, 您不必担心您的程式因为换了一部终端机而无法使用. 这对程
式设计师而言, 尤其是网路上程式的撰写, 是件相当重要的一件事.
curses之所以能对上百种以上的终端机工作, 是因为它将所有终端机的资
料, 存放在一个叫 termcap 的资料库, ( 而在第二版的 System V 系统中
, 新版的 curses 以 terminfo 取代原来的 termcap). 有了这些记录, 程
式就能够知道遇到哪一种终端机时, 须送什麽字元才能移动游标的位置,
送什麽字元才能清除整个萤幕清除. (* 注一)
另外, 本文的介绍 以 System V 的 curses 版本为主.
■ 如何在您的程式使用 curses ?
在您的 C 程式的档头将 include 进来.当您引进 curses.h
这个函式库後, 系统会自动将 和 一并 include 进
来.另外, 在 System V 版本中, 这个函式库也将一并
include进来.
#include
main()
{
: :
: :
}
当然, 您的系统内必须放有 curses.h 这个函式库.
■ 如何编译(compile)
当您编辑好您的程式, 在 UNIX 提示符号下键入:
% /usr/5bin/cc [file.c] -lcurses
^^^^^^^
引进 curses.h 这个 library
或 % /usr/5bin/cc [file.c] -lcurses -ltermlib
(*注二)
■ 如何开始我的第一个 curses 程式?
在开始使用 curses 的一切命令之前, 您必须先利用 initscr()这个函式
来开启 curses 模式.
相对的, 在结束 curses 模式前 ( 通常在您结束程式前 ) 也必须以
endwin()来关闭 curses 模式.
#include
main()
{
initscr();
: :
: :
: :
endwin();
}
这是一般 curses 程式标准的模式.
此外, 您可以就您程式所须, 而做不同的设定. 当然, 您可以不做设定,而
只是呼叫 initscr().
您可以自己写一个函式来存放所有您所须要的设定. 平常使用时, 只要呼
叫这个函式即可启动 curses 并完成一切设定.
下面的例子, 即是笔者将平常较常用的一些设定放在一个叫 initial()的函
式内.
void initial()
{
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,FALSE);
keypad(stdscr,TRUE);
refresh();
}
UNIX下c语言的图形编程--curses.h 函式库
相信您在网路上一定用过如 tin,elm 等工具, 这些软体有项共同的特色,
即他们能利用上下左右等方向键来控制游标的位置. 除此之外, 这些程式
的画面也较为美观. 对 Programming 有兴趣的朋友一定对此感到好奇, 也
许他能在 PC 上用 Turbo C 轻易地写出类似的程式, 然而, 但当他将相同
的程式一字不变地移到工作站上来编译时, 却出现一堆抓也抓不完的错误.
其实, 原因很简单, 他使用的函式库可能在 UNIX 上是没有定义的. 有些
在 Turbo-C 上被广泛使用的一些函式, 可能在 UNIX 上是不被定义的.
为了因应网路上各式各样的终端机形态 (terminal), UNIX 上特别发展出
一套函式库, 专门用来处理 UNIX 上游标移动及萤幕的显示. 这就是本篇
文章要为您介绍的 - curses.h 函式库. 利用这个函式库, 您也可以写出
像 elm 般利用方向键来移动光棒位置的程式. (CCCA 近来所提供的线上选
课程式, 及程式服务界面, 即是笔者利用 curses 发展而成的 )
■ curses 的历史与版本
cureses 最早是由柏克莱大学的 Bill Joy 及 Ken Arnold 所发展出来的.
当时发展此一函式库主要原因是为了提高程式对不同终端机的相容性而设
计的. 因此, 利用 curses 发展出来的程式将和您所使用的终端机无关.
也就是说, 您不必担心您的程式因为换了一部终端机而无法使用. 这对程
式设计师而言, 尤其是网路上程式的撰写, 是件相当重要的一件事.
curses之所以能对上百种以上的终端机工作, 是因为它将所有终端机的资
料, 存放在一个叫 termcap 的资料库, ( 而在第二版的 System V 系统中
, 新版的 curses 以 terminfo 取代原来的 termcap). 有了这些记录, 程
式就能够知道遇到哪一种终端机时, 须送什麽字元才能移动游标的位置,
送什麽字元才能清除整个萤幕清除. (* 注一)
另外, 本文的介绍 以 System V 的 curses 版本为主.
■ 如何在您的程式使用 curses ?
在您的 C 程式的档头将 include 进来.当您引进 curses.h
这个函式库後, 系统会自动将 和 一并 include 进
来.另外, 在 System V 版本中, 这个函式库也将一并
include进来.
#include
main()
{
: :
: :
}
当然, 您的系统内必须放有 curses.h 这个函式库.
■ 如何编译(compile)
当您编辑好您的程式, 在 UNIX 提示符号下键入:
% /usr/5bin/cc [file.c] -lcurses
^^^^^^^
引进 curses.h 这个 library
或 % /usr/5bin/cc [file.c] -lcurses -ltermlib
(*注二)
■ 如何开始我的第一个 curses 程式?
在开始使用 curses 的一切命令之前, 您必须先利用 initscr()这个函式
来开启 curses 模式.
相对的, 在结束 curses 模式前 ( 通常在您结束程式前 ) 也必须以
endwin()来关闭 curses 模式.
#include
main()
{
initscr();
: :
: :
: :
endwin();
}
这是一般 curses 程式标准的模式.
此外, 您可以就您程式所须, 而做不同的设定. 当然, 您可以不做设定,而
只是呼叫 initscr().
您可以自己写一个函式来存放所有您所须要的设定. 平常使用时, 只要呼
叫这个函式即可启动 curses 并完成一切设定.
下面的例子, 即是笔者将平常较常用的一些设定放在一个叫 initial()的函
式内.
void initial()
{
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,FALSE);
keypad(stdscr,TRUE);
refresh();
}
|
楼主可以试一下,curse库,Motiff,GTK+,Qt
这些库我只是听说,但是没有用过
这些库我只是听说,但是没有用过
|
顶一个。。。
|
楼主可以去看看linux C库~~
|
Linux下图形编程,你得从头学起了。当初没有考虑平台移植问题的程序,几本就不要移植了,从头编写吧。
|
graphics.h
win下都没人用了。
楼主想做什么功能?学学Qt吧
win下都没人用了。
楼主想做什么功能?学学Qt吧
|
汗,graphics.h
十多年前这个就已经过时了
以前的老程序就扔了吧
十多年前这个就已经过时了
以前的老程序就扔了吧
|
graphics.h dos时代的产物了