linux C 多线程获取字符输入方法

原创 2016年08月28日 14:22:06

#define READ_BUF_LEN                8

pthread_t lTestThread;


static void *doTestThreadFunc(void *parg)
{
	char acBuf[READ_BUF_LEN];
	char cCounti;
	int nTestData;

	while(1)
	{
		memset(acBuf, 0, READ_BUF_LEN);
		printf("input:");

		fgets(acBuf, READ_BUF_LEN, stdin);
		for(cCounti=0; cCounti<READ_BUF_LEN; cCounti++)
		{
			if(acBuf[cCounti] == '\n')
			{
				acBuf[cCounti] = '\0';
				break;
			}
		}

		printf("-- %s --\n", acBuf);
		nTestData = strtol(acBuf, NULL, 0);
		printf("0x%x \n", nTestData);

		startSettingFunc(nTestData);
	}

	pthread_exit(NULL);
}

容易出错的地方:

1)必须明确使用 fgets 的长度,谨慎使用 strlen() 函数,当没有输入时,strlen() 获取到的长度就为 0,是错的;

2)线程互斥锁只能锁临界资源,不能锁再线程 while(1) 外面,容易导致死锁;




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

linux下C实现对键盘事件的监听(按下键盘的时候程序立刻读取)

#include #include int scanKeyboard() { int in; struct termios new_settings; struct termios store...

Linux C 多线程执行顺序问题

1:多线程设计通常是比较麻烦的,因为它牵涉到,线程间的同步、和执行顺序问题。在用户没有设定线程间的调度策略时,系统默认采取基于时间片轮转的调度策略。本实验是在默认的调度策略下,测试线程间的执行顺序问题...

Linux C 编程——多线程

线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。与多进程相比,多进程具有多进程不具备的一些优点,其最重要的是:对于多线程来说,其能够比多进程更加节省资源。1、线程创建在Linux中,新建的...

linux c 多线程执行顺序解析

这个线程时序的实验非常好,用简单的程序来分析系统的执行流程。整理格式后贴在这里,学习学习~ ---------------------------------------------------...

Linux C进程与多线程入门—(3)信号

本文出自http://www.wenbanana.com/?p=421稻草人博客,欢迎访问! 概念          信号是系统响应某些状况而产生的事件,进程在接受到信号时会采取相应的行动。信号可...

Linux C 多线程执行顺序问题

1:多线程设计通常是比较麻烦的,因为它牵涉到,线程间的同步、和执行顺序问题。在用户没有设定线程间的调度策略时,系统默认采取基于时间片轮转的调度策略。本实验是在默认的调度策略下,测试线程间的执行顺序问题...

基于Linux C的聊天室客户端(三)多线程

上次说到如何去解决解析xml格式响应的wen't

Linux c 贪吃蛇 无curses、多线程、信号的实现

Linux c 贪吃蛇现有的多是借助 curses库、信号、多线程等技术实现的 这一版没有哦!
  • Lc_Xs
  • Lc_Xs
  • 2017-04-07 17:46
  • 197

Linux C进程与多线程

进程和程序的区别进程和程序的区别可以理解为,进程是活动的程序,而程序是一个代码的集合。进程是加载到内存中的程序,而程序没有加载到内存中,之在磁盘上保存着。下图是进程的结构,而程序进包含代码段 +--...

Linux C 网络编程——多线程的聊天室实现(客户端)

客户端的主要功能:         建立与服务器端的连接,发送消息接收消息 客户端的代码结构:         总共有两个函数:一个主函数(main),实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)