- 博客(131)
- 资源 (35)
- 问答 (1)
- 收藏
- 关注
转载 对于bash:useradd:command not found错误的一点理解
对于bash:useradd:command not found错误的一点理解问题: 前两天做实验,在命令行中添加用户时显示bash:useradd:command not found的错误,在网上查了一下资料。思路: 在UNIX系统里面,每个系统用户都由自己的环境变量来定义自己登录上来的shell、终端类型、路径等。Linux下Bs
2012-07-31 20:51:11 1912
原创 SetTimer(1,1000,ShowText2);
void CALLBACK ShowText2(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) { static i=0; i++; CTryTimerDlg::pselfDlg->SetDlgItemInt(IDC_EDIT_SHOW,i);} void CTryTimerDlg::OnB
2012-07-27 20:25:59 811
转载 GPIOSpeed_TypeDef
/* Output Maximum frequency selection ----------------------------------------*/typedef enum{ GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz}GPIOSpeed_TypeDef;#define IS_GPIO_SPE
2012-07-26 10:18:57 2433
转载 GPIO pins define
/* Exported constants --------------------------------------------------------*//* GPIO pins define ----------------------------------------------------------*/#define GPIO_Pin_0 ((u
2012-07-26 10:16:15 1251
转载 GPIO_LED GPIOF
#if !defined (USE_STM3210B_EVAL) && !defined (USE_STM3210E_EVAL) //#define USE_STM3210B_EVAL #define USE_STM3210E_EVAL#endif/* Define the STM32F10x hardware depending on the used evaluation boar
2012-07-26 10:11:05 1064
转载 RCC_APB2PeriphClockCmd; RCC_APB1PeriphClockCmd(
/******************************************************************************** Function Name : RCC_APB2PeriphClockCmd* Description : Enables or disables the High Speed APB (APB2) peripheral c
2012-07-26 09:46:53 12660
转载 5. 错误
5. 错误5.1 错误状态的种类单元始终处于3 种状态之一。(1) 主动错误状态主动错误状态是可以正常参加总线通信的状态。处于主动错误状态的单元检测出错误时,输出主动错误标志。(2) 被动错误状态被动错误状态是易引起错误的状态。处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。处于被动错误状态的单元即使检测出错误,而其
2012-07-25 14:35:37 674
转载 4. CAN 的特点
3.2 总线拓扑图CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。4. CAN 的特点CAN 协议具有以下特点。(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。多个单元同时开始发送时,发送
2012-07-25 14:26:40 885
转载 1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议
3. CAN 是什么?CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO*1 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量
2012-07-25 14:23:36 7740
原创 串口1自收发—中断方式
/******************************************************************************//* STM32F10x Peripherals Interrupt Handlers *//*************************************
2012-07-24 16:44:26 1238
转载 LED灯 蜂鸣器
*******************************************************************************/int main(void){ /* 配置神舟III号LED灯使用的GPIO管脚模式*/ RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE); /*使能LED灯使用的GPIO时钟*/
2012-07-24 12:14:35 1348
原创 DWORD iProcessID=GetCurrentProcessId(); DWORD iThreadID=GetCurrentThreadId
// ProcessThreadID.cpp : Defines the entry point for the application.//#include "stdafx.h"int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
2012-07-23 10:47:03 2023
转载 %lu is the correct format for unsigned long
%lu is the correct format for unsigned long. Sounds like there are other issues at play here, such as memory corruption or an uninitialized variable. Perhaps show us a larger picture?
2012-07-23 10:22:22 890 1
转载 6.8 对自己的I D概念应该有所了解
6.8 对自己的I D概念应该有所了解当线程运行时,它们常常想要调用Wi n d o w s函数来改变它们的运行环境。例如,线程可能想要改变它的优先级或它的进程的优先级(优先级将在第7章中介绍)。由于线程常常要改变它的(或它的进程的)环境,因此Wi n d o w s提供了一些函数,使线程能够很容易引用它的进程内核对象,或者引用它自己的线程内核对象:上面这两个函数都能返回调用线
2012-07-23 10:12:13 1103
转载 6.7.1 Oops—错误地调用了C r e a t e T h r e a d
6.7.1 Oops—错误地调用了C r e a t e T h r e a d也许你想知道,如果调用C r e a t e T h r e a d,而不是调用C / C + +运行期库的_ b e g i n t h r e a d e x来创建新线程,将会发生什么情况。当一个线程调用要求t i d d a t a结构的C / C + +运行期库函数时,将会发生下面的一些情况(大多数
2012-07-23 09:57:58 2063
转载 _ b e g i n t h r e a d e x函数与C r e a t e T h r e a d函数
若要使多线程C和C + +程序能够正确地运行,必须创建一个数据结构,并将它与使用C / C + +运行期库函数的每个线程关联起来。当你调用C / C + +运行期库时,这些函数必须知道查看调用线程的数据块,这样就不会对别的线程产生不良影响。那么系统是否知道在创建新线程时分配该数据块呢?回答是它不知道。系统根本不知道你得到的应用程序是用C / C + +编写的,也不知道你调用函数的线
2012-07-23 09:55:55 4347
转载 标准C / C + +运行期库原先并不是设计用于多线程应用程序的唯一一个例子
应该考虑的第一件事情是,“为什么必须将一个库用于单线程应用程序,而将另一个库用于多线程应用程序?”,原因是,标准C运行期库是1 9 7 0年问世的,它远远早于线程在任何应用程序上的应用。运行期库的发明者没有考虑到将C运行期库用于多线程应用程序的问题。考虑一下标准C运行期的全局变量e r r n o。有些函数在发生错误时设置该变量。假设拥有下面这个代码段:现在,假设在调用s y
2012-07-23 09:48:38 810
转载 创建线程的过程整理一下
c runtime library对多线程的支持- -Tag: 多线程 runtime library 先把创建线程的过程整理一下:调用CreateThread后,系统就会创建一个线程内核对象,然后在进程内分配线程使用的堆栈的内存。然后将CreateThread中的pvPara
2012-07-23 09:36:00 754
转载 StartRestrictedProcess函数将一个进程放入一个作业
HANDLE hjob;//以下的StartRestrictedProcess函数将一个进程放入一个作业中,以限制此进程具体能够做哪些事情,如下所示:void StartRestrictedProcess() {// Check if we are not already associated with a job.// If this is the case, there is no w
2012-07-22 20:41:07 671
转载 作业可以对作业中的进程进行一系列的限制
具体用到的函数主要有下列: HANDLE CreateJobObject( LPSECURITY_ATTRIBUTES lpJobAttributes, // SD LPCTSTR lpName // job name );
2012-07-21 21:10:46 1029 1
转载 psapi
psapi 定义 PSAPI 就是指 Process Status API ,中文意思就是进程状态API 在MSDN中有如下函数 PSAPI Functions包括的函数 The following are the PSAPI functions. EmptyWorkingSet EnumDevi
2012-07-21 21:08:41 761
转载 每个线程都有它自己的一组C P U寄存器,称为线程的上下文
一旦内核对象创建完成,系统就分配用于线程的堆栈的内存。该内存是从进程的地址空间分配而来的,因为线程并不拥有它自己的地址空间。然后系统将两个值写入新线程的堆栈的上端(线程堆栈总是从内存的高地址向低地址建立)。写入堆栈的第一个值是传递给C r e a t e T h r e a d的p v P a r a m参数的值。紧靠它的下面是传递给C r e a t e T h r e a d的p
2012-07-21 13:35:25 7538
转载 总结 • SEH 与 C++ 异常模型
总结 • SEH 与 C++ 异常模型,可以在一起被混合使用。但最好听从 MSDN 的建议:在 C 程序中使用 try-except 和 try-finally ;而 C++ 程序则应该使用 try-catch 。 • 混合使用时, C++ 异常模型可以捕获 SEH 异常;而 SEH 异常模型也可以捕获 C++ 类型的异常。而后者通常有点小问题,它一般主要运用在提高和保证产品的
2012-07-21 10:46:41 707
原创 __try { A a1, a2;//注释掉~A()就好了
#includeclass A{public: A() {printf(" 构造一个 A 对象 \n");} //~A() {printf(" 析构一个 A 对象 \n");} void f1() {} void f2() {}};void main(){ __try { //int a1, a2;//允许int //A a1, a2;//不允许A A a1, a2
2012-07-21 10:45:12 597
转载 如果一个函数中有局部对象的存在, 那么它就一定会存在 C++ 的异常处理机制
#includeclass A{public: A() {printf(" 构造一个 A 对象 \n");} ~A() {printf(" 析构一个 A 对象 \n");} void f1() {} void f2() {}};void main(){ __try { A a1, a2; puts("in try"); } __except(puts("in fi
2012-07-21 10:38:54 687
转载 一个函数只能采用一种形式的异常处理规则
// 注意,这是 C++ 程序,文件名为: SEH-test.cpp#include "stdio.h"void main(){int* p = 0x00000000; // pointer to NULL// 这里是 SEH 的异常处理语法 __try { puts("in try"); // 这里是 C++ 的异常处理语法 try { puts("in try
2012-07-21 10:30:14 1054
转载 // 捕获得到吗? catch(...)
#include class MyException{public: MyException() {printf(" 构造一个 MyException 对象 \n");} MyException(const MyException& e) {printf(" 复制一个 MyException 对象 \n");} operator=(const MyException& e) {pri
2012-07-21 10:25:35 531
转载 SEH 与 C++ 异常模型的混合使用
// 注意,这是 C++ 程序,文件名为: SEH-test.cpp#include "stdio.h"class MyException{public: MyException() {printf(" 构造一个 MyException 对象 \n");} MyException(const MyException& e) {printf(" 复制一个 MyExceptio
2012-07-21 10:18:21 681
转载 try-catch 处理异常,也即 C++ 异常处理
// 注意,这是 C++ 程序,文件名为: SEH-test.cpp#include "stdio.h"class A{public: void f1() {} // 抛出 C++ 异常 void f2() { throw 888;}};// 这个函数中使用了 try-catch 处理异常,也即 C++ 异常处理void test1(){A a1;A a2,a3; t
2012-07-21 10:07:56 605
转载 C++ 程序,文件名为: SEH-test.cpp
// 注意,这是 C++ 程序,文件名为: SEH-test.cpp#include "stdio.h"class A{public: void f1() {} void f2() {}};void test1(){A a1;A a2,a3;a2.f1();a3.f2();}void test(){int* p = 0x00000000; // pointer
2012-07-21 10:02:36 533
转载 SEH-test.cpp
// 注意,这是 C++ 程序,文件名为: SEH-test.cpp#include "stdio.h"void test(){int* p = 0x00000000; // pointer to NULL __try { puts("in try"); __try { puts("in try"); // causes an access violation exc
2012-07-21 09:56:45 503
转载 SEH 都是指 try-except 和 try-finally 异常机制,而它们是给 C ( VC 环境)编写 windows driver 而设计的
首先声明的是, C++ 中的异常处理机制是建立在 Windows 平台上的 SEH 机制之上,所以 SEH 当然可以在 C++ 程序中使用。不过“阿愚”多次强调过,我们平常一般狭义上的 SEH 都是指 try-except 和 try-finally 异常机制,而它们是给 C ( VC 环境)编写 windows driver 而设计的,所以 SEH 主要应该在 C 程序中被使用,而 C+
2012-07-21 09:50:53 806
转载 RaiseException(0xE0000001, 0, 0, 0);
#include #include #include int seh_filer(int code){switch(code){ case EXCEPTION_ACCESS_VIOLATION : printf("存储保护异常,错误代码:%x\n", code); break; case EXCEPTION_DATATYPE_MISALIGNMENT : printf
2012-07-21 08:43:41 1143
转载 系统异常,也被称为硬件异常;还有一类,就是程序中自己抛出异常,被称为软件异常
最后还有一点需要阐述,在C++的异常处理模型中,有一个throw关键字,也即在受监控的代码中抛出一个异常,那么在SEH异常处理模型中,是不是也应该有这样一个类似的关键字或函数呢?是的,没错!SEH异常处理模型中,对异常划分为两大类,第一种就是上面一些例程中所见到的,这类异常是系统异常,也被称为硬件异常;还有一类,就是程序中自己抛出异常,被称为软件异常。怎么抛出呢?还是Windows提供了的API函
2012-07-21 08:32:50 1485
原创 __except(exception_int_divide_by_zero_filter(GetExceptionInformation()))
#include #include #include int exception_access_violation_filter(LPEXCEPTION_POINTERS p_exinfo){ if(p_exinfo->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION) { printf("存储保护异常\n"
2012-07-20 22:00:17 1323
转载 __except(exception_access_violation_filter(GetExceptionInformation()))
#include #include #include int exception_access_violation_filter(LPEXCEPTION_POINTERS p_exinfo){ if(p_exinfo->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION) { printf("存储保护异常\n"
2012-07-20 21:56:30 1063
转载 __try,__except,__finally,__leave
__try,__except,__finally,__leave导读: 从本篇文章开始,将全面阐述__try,__except,__finally,__leave异常模型机制,它也即是Windows系列操作系统平台上提供的SEH模型。主人公阿愚将在这里与大家分享SEH的学习过程和经验总结。 SEH有两项非常强大的功能。当然,首先是异常处理模型了,因此,这篇文章首先深
2012-07-20 21:16:28 1048
转载 GetExitCodeThread(hThread, (PDWORD) &uSum);
///////////////////////////////////////////////////////////////////////////////// An example of calling Sum for uNum = 0 through 9// uNum: 0 1 2 3 4 5 6 7 8 9 ...// Sum: 0 1 3 6 10 15 21 2
2012-07-20 21:01:46 796
转载 6.5.5 线程终止运行时发生的操作
6.5.5 线程终止运行时发生的操作当线程终止运行时,会发生下列操作:• 线程拥有的所有用户对象均被释放。在Wi n d o w s中,大多数对象是由包含创建这些对象的线程的进程拥有的。但是一个线程拥有两个用户对象,即窗口和挂钩。当线程终止运行时,系统会自动撤消任何窗口,并且卸载线程创建的或安装的任何挂钩。其他对象只有在拥有线程的进程终止运行时才被撤消。• 线程的退出代码从
2012-07-20 20:35:11 565
DownForPhpExt.rar
2016-02-17
网站被迫下线提醒功能
2016-05-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人