- 论坛徽章:
- 0
|
原帖由 eNsEmpire 于 2008-5-4 17:09 发表 ![]()
我在nucleus操作系统中编写一个应用程序,那么
只要我在应用程序中加入头文件,那么如果某个系统调用出错,会把出错信息反映到errno变量上来吗?
Linux操作系统中是完全可以的,但我现在用nucleus操作系统, ...
实现了C标准库就应该有,而无论是什么操作系统
手头有一个简单的实现,以前随手写的,和linux实现差不多
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
static char *errmsg[100] = {
"Success","1","2","3","4","5","6","7","8",
"Bad file descriptor...",
"10"
};
int myerrno;
int mywrite(int fd,char *buf,unsigned int size)
{
int ret;
asm volatile(
"int $0x80\n\t":"=a"(ret):"0"(4),"b"(fd),"c"((long)buf),"d"(size)
);
if (ret)
myerrno = -ret;
return -!!ret;
}
char *mystrerror(int errno)
{
return errmsg[errno];
}
void myperror()
{
fprintf(stderr,"errstr: %s\n",mystrerror(myerrno));
}
int main()
{
if (mywrite(100,"test\n",5) < 0)
myperror();
if (mywrite(1,NULL,5) < 0)
myperror();
} |
[ 本帖最后由 flw2 于 2008-5-4 17:26 编辑 ] |
|