免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5542 | 回复: 5
打印 上一主题 下一主题

[Linux] 使用conio.h里面的函数,编译错误,说找不到函数定义,为什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-02 11:23 |只看该作者 |倒序浏览
如下所示的一段代码,是我从网上找到的一段例子程序。在mingw gcc4.8.1下面编译错误:

  1. #include <conio.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.         int i,j;
  6.         clrscr();
  7.         for (i=0; i<9; i++)
  8.         {
  9.                 for (j=0; j<80; j++)
  10.                         printf("C");
  11.                 printf("\r\n");
  12.                 textcolor(i+1);
  13.         }
  14.         return 0;
  15. }
复制代码
错误信息是:

error: 'clrscr' was not declared in this scope|
error: 'textcolor' was not declared in this scope|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

我打开了这个头文件看了一下,确实没有这两个函数。那么
问题: 纯c/posix编程的话,调用什么函数能清屏,以及设置字符的颜色?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2014-04-02 12:30 |只看该作者
本帖最后由 MMMIX 于 2014-04-02 13:11 编辑
tiansusui 发表于 2014-04-02 11:23
纯c/posix编程的话,调用什么函数能清屏,以及设置字符的颜色?


C 或 POSIX 中没有这种 API。

另外, conio.h 也不是 C 或者 POSIX 提供的头文件。

论坛徽章:
0
3 [报告]
发表于 2014-04-02 13:38 |只看该作者
MMMIX 发表于 2014-04-02 12:30
C 或 POSIX 中没有这种 API。

另外, conio.h 也不是 C 或者 POSIX 提供的头文件。


你是说,操作屏幕的api,不属于标准C/POSIX的头文件所涵盖的内容? 总是和平台相关的一些api?

那libcurses是POSIX的一部分吗? 还是sysv/bsd标准的一部分?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2014-04-02 13:51 |只看该作者
tiansusui 发表于 2014-04-02 13:38
你是说,操作屏幕的api,不属于标准C/POSIX的头文件所涵盖的内容? 总是和平台相关的一些api?

没错。

那libcurses是POSIX的一部分吗? 还是sysv/bsd标准的一部分?


不是。SysV 是实现,不是标准。

论坛徽章:
0
5 [报告]
发表于 2014-04-02 14:11 |只看该作者
MMMIX 发表于 2014-04-02 13:51
没错。


SysV是对某个东西或者标准的实现吗? 我们平时看man的时候会发现一个函数是从SysV或者BSD来的。那么Linux本身也是某种SysV实现的话,那么有没有关于SysV实现的相关标准?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2014-04-02 16:26 |只看该作者
tiansusui 发表于 2014-04-02 14:11

SysV是对某个东西或者标准的实现吗? 我们平时看man的时候会发现一个函数是从SysV或者BSD来的。那么Linux本身也是某种SysV实现的话,那么有没有关于SysV实现的相关标准?

System V 是 Bell Lab 发布的一个 Unix 版本。那些标准,例如 POSIX,都是后来才出来的。

至于你说的某个函数是从 SystemV 或者 BSD 来的,这不过是说这个函数最初是在这些系统中出现,现在 Linux 也提供了相同或类似的函数,仅此而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP