求教,C语言问题,制作一个功能追加的getchar相关的函数mydetchar。信号与时间相关的 getchar能从键盘读取一个文字的输入,现在要制作一个timeout功能追加相关的函数mygetchar。1.timeout的时间,由mygetchar的参数指定。2.返回值是在指定的时间内由键盘输的值,如果是EOF的话就是-1,指定时间内键盘输入没有的话,就发起timeout这是是

题目
求教,C语言问题,制作一个功能追加的getchar相关的函数mydetchar。信号与时间相关的

getchar能从键盘读取一个文字的输入,现在要制作一个timeout功能追加相关的函数mygetchar。1.timeout的时间,由mygetchar的参数指定。

2.返回值是在指定的时间内由键盘输的值,如果是EOF的话就是-1,指定时间内键盘输入没有的话,就发起timeout这是是-2,前两种情况以外的是-3。

3.使用后,不需要的signal的设定就取消,返回原有的设定。

满足以上条件,返回值还有现时间把TIME(3)获得的值变换成CTIME(3)的文字列进行表示。 这个程序不需要重入。

   本人C学得不好,希望给出讲解,运行后的现象,越细越好。

   我的邮箱:1054180441@qq.com

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。 include main { FILE *fp; char c; fp=__________; do { c=getchar; fputs(c,fp); }while(c!=EOF); __________; ; }


正确答案:
fopen(“myfile”,w) fclose(fp);

第2题:

在打开函数中其中是在由指定的流上打开由路径名指定的文件,其返回值为指向文件流指针,此函数用于将一个指定的文件打开为一个预定义的标准流()

A.open

B.f open

C.freopen

D.f dopen


正确答案:C

第3题:

getchar()函数的功能是从键盘上输入一个字符串。()

此题为判断题(对,错)。


参考答案:错误

第4题:

一个函数返回值的类型是由()决定的。

A.return语句中表达式的类型

B.定义函数时指定的函数类型

C.在调用函数时临时指定

D.调用函数的主调函数的类型


正确答案:B

第5题:

请教,UNIX下C语言的问题,制作一个功能追加的getchar相关的函数mydetchar。信号与时间相关的!

getchar能从键盘读取一个文字的输入,现在要制作一个timeout功能追加相关的函数mygetchar。1.timeout的时间,由mygetchar的参数指定。2.返回值是在指定的时间内由键盘输的值,如果是EOF的话就是-1,指定时间内键盘输入没有的话,就发起timeout这是是-2,前两种情况以外的是-3。3.使用后,不需要的signal的设定就取消,返回原有的设定。程序需要满足上记条件,返回值还有现时间把TIME(3)获得的值变换成CTIME(3)的文字列进行表示。 这个程序不需要重入。这段东西是我从日语翻译过来的,可能意思有点偏差,但是大意肯定没问题!求大神指导!我还在看UNIX下C的书,这东西真不太容易而且还真不太懂。。。。


#include <stdio.h> #include <unistd.h> #include <errno.h> #include <signal.h> #include <sys/time.h> #include <string.h> void handler(int sig) { if (sig != SIGALRM) { printf("Invalid signal %d\n", sig); } } int mygetchar(int wait) { char ch; int size, ret, clear; struct sigaction act, old; struct itimerval timer; if (wait <= 0) return -3; act.sa_handler = handler; sigemptyset(&act.sa_mask); act.sa_flags = 0; sigaction(SIGALRM, &act, &old); /* set timer */ memset(&timer, 0, sizeof(timer)); timer.it_value.tv_sec = wait; setitimer(ITIMER_REAL, &timer, NULL); size = read(STDIN_FILENO, &ch, sizeof(ch)); clear = 1; /* assume we should disable timer after reading */ if (size == 0) /* eof */ { ret = -1; } else if (size == -1 && errno == EINTR) /* timeout */ { ret = -2; clear = 0; } else if (size < 0) /* other errors */ { ret = -3; } else { ret = ch; } if (clear) { /* disable the running timer */ timer.it_value.tv_sec = 0; setitimer(ITIMER_REAL, &timer, NULL); } sigaction(SIGALRM, &old, NULL); /* restore sig action */ return ret; } int main() { int ch; time_t t; printf("input a char in 3 seconds\n"); ch = mygetchar(3); t = time(NULL); if (ch < 0) printf("mygetchar returns %d, at %s\n", ch, ctime(&t)); else printf("get char '%c', at %s\n", ch, ctime(&t)); return 0; }

第6题:

为了表明一个函数不带返回值,应在定义函数时指定该函数类型为_______。


正确答案:

【答案】void
【解析】void表明该函数不带返回值。如果没有void.则系统会返回一个默认类型的随机值,这对程序可能造成不必要的问题。 

第7题:

C语言中getchar 函数的功能是_________________________。


正确答案:
从键盘上输入一个字符。

第8题:

请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。


正确答案:
#include”stdio.h”
int fun(int a)
{int I;
if(a==2) return 1; I=2;
while((a%I)!=0I<=sqrt((float)a))
I++;
if(a%I==0)
{printf(“%d is not a prime!”,a);
return 0; }
printf(“%d is a prime!”,a);
return 1; }
main
{int x;
printf(“\n please enter a number:”);
scanf(“%d”,&x);
printf(“%d\n”,fun(x)); }

第9题:

公司A有一个SQLSERVER2005数据库服务器。你被指派了一个任务是去得到当前已登录数据库的用户的信息。为此,你需要去创建一个返回指定用户活动时长的函数,请问,下面哪两个方法能达到这个目的?()

A.创建一个返回值列表的函数,它返回给定用户的登录时间值

B.创建一个返回值列表的函数,它返回返回超过当前用户登录时长的那些用户的登录小时数

C.创建一个返回指定用户当天登录小时数的函数

D.创建一个返回指定用户当月登录小时数的函数


参考答案:C, D

第10题:

C语言规定函数返回值的类型是由在定义该函数时所指定的函数类型所决定的。()

此题为判断题(对,错)。


参考答案:正确

更多相关问题