正文
_kbhit() for linux
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
传送门:http://cboard.cprogramming.com/c-programming/63166-kbhit-linux.html
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h> int kbhit(void)
{
struct termios oldt, newt;
int ch;
int oldf; tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
oldf = fcntl(STDIN_FILENO, F_GETFL, );
fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK); ch = getchar(); tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
fcntl(STDIN_FILENO, F_SETFL, oldf); if(ch != EOF)
{
ungetc(ch, stdin);
return ;
} return ;
} main( int argc, char** argv )
{
char *input = argv[];
int nomor = argc;
pid_t pid = ;
/* set stuff up */
/* accept command line args */ pid = fork();
if( pid == ){
/* this is the "background" process. Execute process loop here */
int x=;
while()
{
if(kbhit())
printf("you hit keyboard");
}
}
else {
/* "foreground" process exits */
exit();
}
}
具体含义,有的解释是等待键盘输入;但此处用意为在 ios下使用while( !kbhit()) 控制openal的音效的循环播放.