??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品国产91久久久久福利,国产∨亚洲V天堂无码久久久,久久大香萑太香蕉av http://www.shnenglu.com/wangqiulin/路是自己走出来的Q?==wang zh-cn Thu, 08 May 2025 16:11:48 GMT Thu, 08 May 2025 16:11:48 GMT 60 二叉搜烦?/title> http://www.shnenglu.com/wangqiulin/archive/2011/06/16/148815.html王秋?/dc:creator>王秋?/author>Thu, 16 Jun 2011 14:49:00 GMT http://www.shnenglu.com/wangqiulin/archive/2011/06/16/148815.html http://www.shnenglu.com/wangqiulin/comments/148815.html http://www.shnenglu.com/wangqiulin/archive/2011/06/16/148815.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/148815.html http://www.shnenglu.com/wangqiulin/services/trackbacks/148815.html 阅读全文 ]]> 面试呀 http://www.shnenglu.com/wangqiulin/archive/2011/06/04/148068.html王秋?/dc:creator>王秋?/author>Sat, 04 Jun 2011 14:05:00 GMT http://www.shnenglu.com/wangqiulin/archive/2011/06/04/148068.html http://www.shnenglu.com/wangqiulin/comments/148068.html http://www.shnenglu.com/wangqiulin/archive/2011/06/04/148068.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/148068.html http://www.shnenglu.com/wangqiulin/services/trackbacks/148068.html ]]> 内存 http://www.shnenglu.com/wangqiulin/archive/2011/04/11/143960.html王秋?/dc:creator>王秋?/author>Mon, 11 Apr 2011 10:35:00 GMT http://www.shnenglu.com/wangqiulin/archive/2011/04/11/143960.html http://www.shnenglu.com/wangqiulin/comments/143960.html http://www.shnenglu.com/wangqiulin/archive/2011/04/11/143960.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/143960.html http://www.shnenglu.com/wangqiulin/services/trackbacks/143960.html
五大内存分区
在C++中,内存分成5个区Q他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区?
栈,是那些q译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等?
堆,是那些由new分配的内存块Q他们的释放~译器不ȝQ由我们的应用程序去控制Q一般一个newp对应一个delete。如果程序员没有释放掉,那么在程序结束后Q操作系l会(x)自动回收?
自由存储区,是那些由malloc{分配的内存块,他和堆是十分怼的,不过它是用free来结束自q生命的?
全局/静态存储区Q全局变量和静态变量被分配到同一块内存中Q在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有q个区分了,他们共同占用同一块内存区?
帔R存储区,q是一块比较特D的存储区,他们里面存放的是帔RQ不允许修改
]]> 深刻理解Linuxq程间通信(道、有名管? http://www.shnenglu.com/wangqiulin/archive/2010/12/06/135611.html王秋?/dc:creator>王秋?/author>Mon, 06 Dec 2010 13:23:00 GMT http://www.shnenglu.com/wangqiulin/archive/2010/12/06/135611.html http://www.shnenglu.com/wangqiulin/comments/135611.html http://www.shnenglu.com/wangqiulin/archive/2010/12/06/135611.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/135611.html http://www.shnenglu.com/wangqiulin/services/trackbacks/135611.html
1?道概述及相关API应用
1.1 道相关的关键概?/span>
道是Linux支持的最初Unix IPC形式之一Q具有以下特点:(x)
道是半双工的,数据只能向一个方向流动;需要双斚w信Ӟ需要徏立v两个道Q?/li>
只能用于父子q程或者兄弟进E之_(d)h亲缘关系的进E)Q?/li>
单独构成一U独立的文gpȝQ管道对于管道两端的q程而言Q就是一个文Ӟ但它不是普通的文gQ它不属于某U文件系l,而是自立门户Q单独构成一U文件系l,q且只存在与内存中?/li>
数据的读出和写入Q一个进E向道中写的内容被道另一端的q程d。写入的内容每次都添加在道~冲区的末尾Qƈ且每ơ都是从~冲区的头部d数据?/li>
1.2道的创建:(x) #include <unistd.h> int pipe(int fd[2])
该函数创建的道的两端处于一个进E中_(d)在实际应用中没有太大意义Q因此,一个进E在由pipe()创徏道后,一般再fork一个子q程Q然后通过道实现父子q程间的通信Q因此也不难推出Q只要两个进E中存在亲缘关系Q这里的亲缘关系指的是具有共同的先Q都可以采用道方式来进行通信Q?/p>
1.3道的读写规则:(x)
道两端可分别用描述字fd[0]以及fd[1]来描qͼ需要注意的是,道的两端是固定了Q务的。即一端只能用于读Q由描述字fd[0]表示Q称其ؓ(f)道ȝQ另一端则只能用于写,由描q字fd[1]来表C,U其为管道写端。如果试图从道写端d数据Q或者向道ȝ写入数据都将D错误发生。一般文件的I/O函数都可以用于管道,如close、read、write{等?/p>
从管道中d数据Q?/p>
如果道的写端不存在Q则认ؓ(f)已经d了数据的末尾Q读函数q回的读出字节数?Q?/li>
当管道的写端存在Ӟ如果h的字节数目大于PIPE_BUFQ则q回道中现有的数据字节敎ͼ如果h的字节数目不大于PIPE_BUFQ则q回道中现有数据字节数Q此Ӟ道中数据量于h的数据量Q;或者返回请求的字节敎ͼ此时Q管道中数据量不于h的数据量Q。注Q(PIPE_BUF在include/linux/limits.h中定义,不同的内核版本可能会(x)有所不同。Posix.1要求PIPE_BUF臛_?12字节Qred hat 7.2中ؓ(f)4096Q?/li>
关于道的读规则验证Q?br>
/************** * readtest.c * **************/ #include <unistd.h> #include <sys/types.h> #include <errno.h> main() { int pipe_fd[2]; pid_t pid; char r_buf[100]; char w_buf[4]; char* p_wbuf; int r_num; int cmd; memset(r_buf,0,sizeof(r_buf)); memset(w_buf,0,sizeof(r_buf)); p_wbuf=w_buf; if(pipe(pipe_fd)<0) { printf("pipe create error\n"); return -1; } if((pid=fork())==0) { printf("\n"); close(pipe_fd[1]); sleep(3);//保父进E关闭写?br> r_num=read(pipe_fd[0],r_buf,100); printf( "read num is %d the data read from the pipe is %d\n",r_num,atoi(r_buf)); close(pipe_fd[0]); exit(); } else if(pid>0) { close(pipe_fd[0]);//read strcpy(w_buf,"111"); if(write(pipe_fd[1],w_buf,4)!=-1) printf("parent write over\n"); close(pipe_fd[1]);//write printf("parent close fd[1] over\n"); sleep(10); } } /************************************************** * E序输出l果Q?br>* parent write over * parent close fd[1] over * read num is 4 the data read from the pipe is 111 * 附加l论Q?br>* 道写端关闭后,写入的数据将一直存在,直到d为止. ****************************************************/ 向管道中写入数据Q?/p>
向管道中写入数据Ӟlinux不保证写入的原子性,道~冲Z有空闲区域,写进E就?x)试囑道写入数据。如果读q程不读走管道缓冲区中的数据Q那么写操作一直阻塞?span class=Apple-converted-space> 注:(x)只有在管道的ȝ存在Ӟ向管道中写入数据才有意义。否则,向管道中写入数据的进E将收到内核传来的SIFPIPE信号Q应用程序可以处理该信号Q也可以忽略Q默认动作则是应用程序终止)?/li>
对管道的写规则的验证1Q写端对ȝ存在的依赖?br>
#include <unistd.h>
#include <sys/types.h>
main()
{
int pipe_fd[2];
pid_t pid;
char r_buf[4];
char* w_buf;
int writenum;
int cmd;
memset(r_buf,0,sizeof(r_buf));
if(pipe(pipe_fd)<0)
{
printf("pipe create error\n");
return -1;
}
if((pid=fork())==0)
{
close(pipe_fd[0]);
close(pipe_fd[1]);
sleep(10);
exit();
}
else if(pid>0)
{
sleep(1); //{待子进E完成关闭读端的操作
close(pipe_fd[0]);//write
w_buf="111";
if((writenum=write(pipe_fd[1],w_buf,4))==-1)
printf("write to pipe error\n");
else
printf("the bytes write to pipe is %d \n", writenum);
close(pipe_fd[1]);
}
}
则输出结果ؓ(f)Q?Broken pipe,原因是该管道以及它的所有fork()产物的读端都已经被关闭。如果在父进E中保留ȝQ即在写完pipe后,再关闭父q程的读端,也会(x)正常写入pipeQ读者可自己验证一下该l论。因此,在向道写入数据Ӟ臛_应该存在某一个进E,其中道ȝ没有被关闭,否则׃(x)出现上述错误Q管道断?q程收到了SIGPIPE信号Q默认动作是q程l止Q?/p>
对管道的写规则的验证2Qlinux不保证写道的原子性验?br>
l论Q?/p>
写入数目于4096时写入是非原子的Q?span class=Apple-converted-space> 如果把父q程中的两次写入字节数都改ؓ(f)5000Q则很容易得Z面结论:(x) 写入道的数据量大于4096字节Ӟ~冲区的I闲I间被写入数据Q补齐)Q直到写完所有数据ؓ(f)止,如果没有q程L据,则一直阻塞?/p>
1.4道应用实例Q?/span>
实例一Q用于shell
道可用于输入输出重定向Q它?yu)一个命令的输出直接定向到另一个命令的输入。比如,当在某个shellE序QBourne shell或C shell{)键入who│wc -l后,相应shellE序创建who以及wc两个q程和这两个q程间的道。考虑下面的命令行Q?/p>
$kill -l $kill -l | grep SIGRTMIN
实例二:(x)用于h亲缘关系的进E间通信
下面例子l出了管道的具体应用Q父q程通过道发送一些命令给子进E,子进E解析命令,q根据命令作相应处理?br>
#include <unistd.h>
#include <sys/types.h>
main()
{
int pipe_fd[2];
pid_t pid;
char r_buf[4];
char* w_buf;
int writenum;
int cmd;
memset(r_buf,0,sizeof(r_buf));
if(pipe(pipe_fd)<0)
{
printf("pipe create error\n");
return -1;
}
if((pid=fork())==0)
{
close(pipe_fd[0]);
close(pipe_fd[1]);
sleep(10);
exit();
}
else if(pid>0)
{
sleep(1); //{待子进E完成关闭读端的操作
close(pipe_fd[0]);//write
w_buf="111";
if((writenum=write(pipe_fd[1],w_buf,4))==-1)
printf("write to pipe error\n");
else
printf("the bytes write to pipe is %d \n", writenum);
close(pipe_fd[1]);
}
}
输出l果Q?br>the bytes write to pipe 1000 the bytes write to pipe 1000 //注意Q此行输明了写入的非原子?br>the bytes write to pipe 1000 the bytes write to pipe 1000 the bytes write to pipe 1000 the bytes write to pipe 120 //注意Q此行输明了写入的非原子?br>the bytes write to pipe 0 the bytes write to pipe 0 ......
1.5 道的局限?/span>
道的主要局限性正体现在它的特点上Q?/p>
只支持单向数据流Q?/li>
只能用于h亲缘关系的进E之_(d)
没有名字Q?/li>
道的缓冲区是有限的Q管道制存在于内存中Q在道创徏Ӟ为缓冲区分配一个页面大)Q?/li>
道所传送的是无格式字节,q就要求道的读出方和写入方必须事先U定好数据的格式Q比如多字节算作一个消息(或命令、或记录Q等{?/li>
]]> OpenGL robot手臂的实?/title> http://www.shnenglu.com/wangqiulin/archive/2010/10/12/129646.html王秋?/dc:creator>王秋?/author>Tue, 12 Oct 2010 12:18:00 GMT http://www.shnenglu.com/wangqiulin/archive/2010/10/12/129646.html http://www.shnenglu.com/wangqiulin/comments/129646.html http://www.shnenglu.com/wangqiulin/archive/2010/10/12/129646.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/129646.html http://www.shnenglu.com/wangqiulin/services/trackbacks/129646.html #include <GL/glut.h> #include <stdlib.h>
static int shoulder = 0, elbow = 0,thumb=0,littlethumb=0;
void init(void) { glClearColor (0.0, 0.0, 0.0, 0.0); glShadeModel (GL_FLAT); }
void display(void) { glClear (GL_COLOR_BUFFER_BIT); glPushMatrix(); glTranslatef (-1.0, 0.0, 0.0); glRotatef ((GLfloat) shoulder, 0.0, 0.0, 1.0); glTranslatef (1.0, 0.0, 0.0); glPushMatrix(); glScalef (2.0, 0.4, 1.0); glutWireCube (1.0); glPopMatrix();
glTranslatef (1.0, 0.0, 0.0); glRotatef ((GLfloat) elbow, 0.0, 0.0, 1.0); glTranslatef (1.0, 0.0, 0.0); glPushMatrix(); glScalef (2.0, 0.4, 1.0); glutWireCube (1.0); glPopMatrix(); glPushMatrix(); glTranslatef(0.0,0.2,0.5); glTranslatef(1.0,0.0,0.0); glRotatef((GLfloat)thumb,0.0,0.0,1.0); glTranslatef(0.3,0.0,0.0); glPushMatrix(); glScalef(0.6,0.1,0.2); glutWireCube(1); glPopMatrix(); glTranslatef(0.3,0.0,0.0); glRotatef((GLfloat)littlethumb,0.0,0.0,1.0); glTranslatef(0.2,0.0,0.0); glPushMatrix(); glScalef(0.4,0.1,0.1); glutWireCube(1); glPopMatrix(); glPopMatrix();
glPushMatrix(); glTranslatef(0.0,0.2,-0.5); glTranslatef(1.0,0.0,0.0); glRotatef((GLfloat)thumb,0.0,0.0,1.0); glTranslatef(0.3,0.0,0.0); glPushMatrix(); glScalef(0.6,0.1,0.2); glutWireCube(1); glPopMatrix(); glTranslatef(0.3,0.0,0.0); glRotatef((GLfloat)littlethumb,0.0,0.0,1.0); glTranslatef(0.2,0.0,0.0); glPushMatrix(); glScalef(0.4,0.1,0.1); glutWireCube(1); glPopMatrix(); glPopMatrix();
glPushMatrix(); glTranslatef(0.0,0.2, 0.2); glTranslatef(1.0,0.0,0.0); glRotatef((GLfloat)thumb,0.0,0.0,1.0); glTranslatef(0.3,0.0,0.0); glPushMatrix(); glScalef(0.6,0.1,0.2); glutWireCube(1); glPopMatrix(); glTranslatef(0.3,0.0,0.0); glRotatef((GLfloat)littlethumb,0.0,0.0,1.0); glTranslatef(0.2,0.0,0.0); glPushMatrix(); glScalef(0.4,0.1,0.1); glutWireCube(1); glPopMatrix(); glPopMatrix();
glPushMatrix(); glTranslatef(0.0,0.2,-0.2); glTranslatef(1.0,0.0,0.0); glRotatef((GLfloat)thumb,0.0,0.0,1.0); glTranslatef(0.3,0.0,0.0); glPushMatrix(); glScalef(0.6,0.1,0.2); glutWireCube(1); glPopMatrix(); glTranslatef(0.3,0.0,0.0); glRotatef((GLfloat)littlethumb,0.0,0.0,1.0); glTranslatef(0.2,0.0,0.0); glPushMatrix(); glScalef(0.4,0.1,0.1); glutWireCube(1); glPopMatrix(); glPopMatrix();
glPushMatrix(); glTranslatef(0.0,-0.2,-0.2); glTranslatef(1.0,0.0,0.0); glRotatef((GLfloat)thumb,0.0,0.0,1.0); glTranslatef(0.3,0.0,0.0); glPushMatrix(); glScalef(0.6,0.1,0.2); glutWireCube(1); glPopMatrix(); glTranslatef(0.3,0.0,0.0); glRotatef((GLfloat)littlethumb,0.0,0.0,1.0); glTranslatef(0.2,0.0,0.0); glPushMatrix(); glScalef(0.4,0.1,0.1); glutWireCube(1); glPopMatrix(); glPopMatrix();
glPopMatrix(); glutSwapBuffers(); }
void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective(65.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef (0.0, 0.0, -5.0); }
void keyboard (unsigned char key, int x, int y) { switch (key) { case 's': shoulder = (shoulder + 5) % 360; glutPostRedisplay(); break; case 'S': shoulder = (shoulder - 5) % 360; glutPostRedisplay(); break; case 'e': elbow = (elbow + 5) % 360; glutPostRedisplay(); break; case 'E': elbow = (elbow - 5) % 360; glutPostRedisplay(); break; case 'd': thumb= (thumb+5)%360; glutPostRedisplay(); break; case'D': thumb= (thumb-5)%360; glutPostRedisplay(); break; case'l': littlethumb=(littlethumb-5)%360; glutPostRedisplay(); break; case'L': littlethumb=(littlethumb+5)%360; glutPostRedisplay(); break; case 27: exit(0); break; default: break; } }
int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize (800, 500); glutInitWindowPosition (100, 100); glutCreateWindow (argv[0]); init (); glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutMainLoop(); return 0; }
]]>C++写入文本文g http://www.shnenglu.com/wangqiulin/archive/2010/10/07/128946.html王秋?/dc:creator>王秋?/author>Thu, 07 Oct 2010 11:10:00 GMT http://www.shnenglu.com/wangqiulin/archive/2010/10/07/128946.html http://www.shnenglu.com/wangqiulin/comments/128946.html http://www.shnenglu.com/wangqiulin/archive/2010/10/07/128946.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/128946.html http://www.shnenglu.com/wangqiulin/services/trackbacks/128946.html
对于文g输入QC++使用cM于cout的东ѝ下面来复习(fn)一些有兛_cout用于控制台输出的基本事实Qؓ(f)文g输入做准备:(x) ?必须包含头文件iostream?br> ?头文件iostream定义了一个用处理输出的ostreamcR?br> ?头文件iostream声明了一个名为cout的ostream变量Q对象)?br> ?必须指明名称I间std:例如Qؓ(f)引用元素cout和endlQ必M用编译指令using或前~std::?br> ?可以l合使用cout和操作符“>>”来显C各U类型的数据?/font>
文g输出与此极其怼Q?br> ?必须包含头文件fstream?br> ?需要声明一个或多个ofstream变量Q对象)Qƈ以自己喜Ƣ的方式对其q行命名Q条件是遵守常用的命名规则?br> ?必须指明名称I间std:例如Qؓ(f)引用元素ofstreamQ必M用编译指令using或前~std::?br> ?需要将ofstream对象与文件关联v来。ؓ(f)此,Ҏ(gu)之一是用open()Ҏ(gu)?br> ?使用完文件后Q应使用close()Ҏ(gu)其关闭?br> ?可结合用ofstream对象和操作符>>来输出各U类型的数据?br> 注意Q虽然头文giostream提供了一个预先定义好的名为cout的ostream对象Q但(zhn)必d明自qofstream对象Qؓ(f)其命名,q将其同文g兌h。下面演CZ如何声明q种对象?br> ofstream outFile; //outFile an ofstream object ofstream fount; //fout an ofstream object
下面演示了如何将q种对象与特定的文g兌hQ?/font>
outFile.open("fish.txt"); //outFile used to write to the fish.txt file char filename[50]; cin >> filename; //user specifies a name fout.open(filename); //fout used to read specified file
注意Q方法open()接受一个C-风格字符串作为参敎ͼq可以是一个字面字W串Q也可以是存储在数组中的字符丌Ӏ?br> 下面演示了如何用这U对象:(x)
double wt = 125.8; outFile << wt; //write a number to fish.txt char line[81] = "Objects are closer than they appear."; fin << line << endl; //write a line of text
重要的是Q声明一个ofstream对象q将其同文g兌h后,便可以像使用cout那样使用它。所有可用于cout的操作和Ҏ(gu)Q如<<、enld和setf())都可用于ofstream对象Q如前述范例中的outFile和fout)?/font>
MQ用文件输出的主要步骤如下Q?br> 1. 包含头文件fstream?br> 2. 创徏一个ofstream对象?br> 3. 该ofstream对象同一个文件关联v来?br> 4. 像使用count那样使用该ofstream对象?br> E序清单6.15中的E序演示了这U方法。它要求用户输入信息Q然后将信息昄到屏q上Q再这些信息写入到文g中。读者可以用文本编辑器来查看该输出文g的内宏V?/font>
E序清单6.15 outfile.cpp //outfile.cpp -- writing to a file #include <iostream> #include <fstream>
int main() { using namespace std; char automobile[50]; int year; double a_price; double d_price; ofstream outFile; //create object for output outFile.open("carinfo.txt"); //associate with a file
cout << "Enter the make and model of automobile:"; cin.getline(automobile, 50); cout << "Enter the model year:"; cin >> year; cout << "Enter the original asking price:"; cin >> a_price; d_price = 0.913 * a_price;
// display information on screen with count
cout << fixed; cout.precision(2); cout.setf(ios_base::showpoint); cout << "Make and model:" << automobile << endl; cout << "Year:" << year << endl; cout << "Was asking $" << a_price << endl; cout << "Now asking $" << d_price << endl;
// now do exact same things using outFile instead of cout
outFile << fixed;//如果输出的数据是点?则按定点表示法输?/span> outFile.precision(2);//按照指定的精度控制QҎ(gu)输出 outFile.setf(ios_base::showpoint);//出的数据强制加小数点以及数点后 outFile << "Make and model:" << automobile << endl; outFile << "Year:" << year << endl; outFile << "Was asking $" << a_price << endl; outFile << "Now asking $" << d_price << endl;
outFile.close(); //done with file return 0; }
该程序的最后一部分与cout部分相同Q只是将cout替换为outFile而已。下面是该程序的q行情况Q?br> Enter the make and model of automobile: Flitz Pinata Enter the model year: 2001 Enter the original asking price :28576 Make and model: Flitz Pinata Year: 2001 Was asking $28576.00 Now asking $26089.89 屏幕输出的是使用cout的结果。如果?zhn)查看该程序的可执行文件所在的目录Q将看到一个名为carinfo.txt的新文gQ其中包含用outFile生成的输出?br> E序说明 在程序清?.15的程序中Q声明一个ofstream对象后,便可以用方法open()来将该对象同一个特定的文g兌hQ?/font>
ofstream outFile; //create object for output outFile.open("carinfo.txt"); //associate with a file
E序使用完该文g后,应该其关闭Q?/font>
outFile.close();
注意Q方法close()不需要用文件名作ؓ(f)参数Q这是因为outFile已经同特定的文g兌h了。如果?zhn)忘记关闭文gQ程序正常终止时自动关闭它?br> outFile可用cout可用的MҎ(gu)。它不但能够使用操作W?lt;<Q还可以使用各种格式化方法,如setf()和precision()。这些方法只影响调用它们的对象。例如,对于不同的对象,可以提供不同的|(x)
cout.precision(2); //use a precision of 2 for the display outFile.porecision(4); //use a precision of 4 for file output
读者需要记住的重点是,创徏好ofstream对象Q如outFileQ后Q便可以像用cout那样使用它?br> 回到open()Ҏ(gu)Q?/font>
outFile.open("carinfo.txt");
在这里,该程序运行之前,文gcarinfo.txtq不存在。在q种情况下,Ҏ(gu)open()新Z个名为carinfo.txt的文件。如果在此运行该E序Q文件carinfo.txt存在,此时情况如何呢Q默认情况下Qopen()首先截断该文gQ即其长度截短到零——丢其原有的内容Q然后将新的输出加入到该文g中。第17章将介绍如何修改q种默认行ؓ(f)?/font>
警告Q打开已有的文Ӟ以接受输出时Q默认将它其长度截短为零Q因此原来的内容丢失?/font>
打开文g用于接受输入时可能失败。例如,指定的文件可能已存在Q但止对其q行讉K。因此细心的E序员将查打开文g的操作是否成功,q将在下一个例子中介绍?/font>
]]> 补码q算规则 http://www.shnenglu.com/wangqiulin/archive/2010/10/03/128519.html王秋?/dc:creator>王秋?/author>Sun, 03 Oct 2010 13:41:00 GMT http://www.shnenglu.com/wangqiulin/archive/2010/10/03/128519.html http://www.shnenglu.com/wangqiulin/comments/128519.html http://www.shnenglu.com/wangqiulin/archive/2010/10/03/128519.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/128519.html http://www.shnenglu.com/wangqiulin/services/trackbacks/128519.html
1q算规则
[XQY]? [X]补+ [Y]?span class=Apple-converted-space>
[XQY]? [X]补+ [QY]?span class=Apple-converted-space> 若已知[Y]补,求[QY]补的Ҏ(gu)是:(x)[Y]补的各位Q包括符号位Q逐位取反再在最低位?卛_?span class=Apple-converted-space> 例如Q[Y]? 101101 [QY]? 010011
2、溢出判断,一般用双符号位q行判断Q?/p>
W号?0 表示正数 11 表示负数 l果的符号位?1ӞUCؓ(f)上溢Qؓ(f)10ӞUCؓ(f)下溢 例题Q设x=0.1101Qy=Q?.0111Q符号位为双W号?span class=Apple-converted-space> 用补码求x+yQxQy [x]?[y]?00 1101+11 1001=00 0110 [xQy]?[x]?[Qy]?00 1101+00 0111=01 0100 l果错误Q正溢出
]]> [解决]vgn-tz33B按装pȝ后L提示hal.dll文g丢失 http://www.shnenglu.com/wangqiulin/archive/2010/09/28/127984.html王秋?/dc:creator>王秋?/author>Tue, 28 Sep 2010 10:28:00 GMT http://www.shnenglu.com/wangqiulin/archive/2010/09/28/127984.html http://www.shnenglu.com/wangqiulin/comments/127984.html http://www.shnenglu.com/wangqiulin/archive/2010/09/28/127984.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/127984.html http://www.shnenglu.com/wangqiulin/services/trackbacks/127984.html
[解决 ]vgn-tz33B按装pȝ 后L提示hal.dll文g 丢失 hal.dll是在system32下的pȝ文g?其实q个文gq不一定是丢失?有可能是boot.ini出错?我{载一个朋友回{的{案 希望你能解决该问?以下内容{载:(x) 提示hal.dll损坏或丢?实际上该文gq不一定不存在,可以_(d)拷个文g回去system32里,Ҏ(gu)是不可以解决?出现q个错误的原因是boot.ini文g出错,D引导不了机器从指定的路径启动,那样pȝ搜烦 其他的\径,而其他\径上是没有hal.dll文g?׃(x)提示q个错误.一般的解决办法是进?span class=t_tag onclick=tagshow(event) href="tag.php?name=%E6%95%85%E9%9A%9C">故障恢复控制?用fixboot命o,如果q样修复不了boot.ini,qbootcfg/add来重建boot.ini?q个是由于C盘根目录下的boot.ini文g非法Q导致默认从C:Q?span class=t_tag onclick=tagshow(event) href="tag.php?name=Windows">Windows启动Q但是又׃你的Win dows XP没有安装在C盘,所以系l提C找不到HAL.DLL文g。启动因而失败。解x法是重新~辑B(ti)oot.ini文g?1)、用Win9X启动盘启动,使用EDIT.EXE命o~辑q个文g。启动EDIT.EXE以后只要按照正确的格式输入Boot.ini文g的内容,保存为Boot.ini文g卛_?2)、用COPY CON命o创徏一个Boot.ini文g。在DOS下输入Copy Con C:Qboot.ini以后回R。然后按照Boot.ini文g的格式输入,每输入一行敲一ơ回车键Q当全部内容输入完毕以后Q按CTRL+ZQ?span class=t_tag onclick=tagshow(event) href="tag.php?name=%E5%B1%8F%E5%B9%95">屏幕上会(x)看到^Z的提C。这个时候再敲一ơ回车,pȝ?x)提C? file(s) copied.q就表示创徏成功了?3)、用故障恢复控制台里面的bootcfg命o?4)、在别的?sh)?/span>上创建好以后Q拷贝到受损?sh)脑的C盘根目录上覆盖源文g卛_?q有个办法,你用个u盘从别个那里拷一?hal.dll文gQ然后插在你的电(sh)脑上Q再用一张系l安装盘放进光驱。在W一选择里,选择修复Q就可以q入doc里了。然后从a: b: 一直试下去Q看Cu盘就要吧?copy hal.dll c:\windows\system32\hal.dll 可以了Q?原理是在安装pȝ的时候,u盘也?x)被到Q就可以用了。Y盘也可以。但你应该不?x)有软?/td>
是按照q个步骤解决的:(x)
解决"systemroot\\system32\\hal.dll文g非法或该文g已损坏,pȝ无法启动" 当电(sh)脑重新启动进入WinXPӞpȝ提示Q?#8220;systemroot\\system32\\hal.dll文g非法或该文g已损坏,pȝ无法启动”。可以利用将故障恢复控制台来修复损坏的文件? 插入xp安装盘重新启动电(sh)脑,选择故障恢复控制台。依提示q入Windows dos目录? 在DOS提示W下输入Qexpand x:\\i386\\driver.cab /f:hal.dll c:\\windows\\system32\\(x:为光qW?再次利用expand 首先halaacpi.dll拯至c:\\windows\\system32\\Qƈ改名为hal.dll后重新启动电(sh)?再拷halacpi.dll(因ؓ(f)hal.dll的源文g名是halacpi.dll).改名(ren)后重启,restart卛_ 提示hal.dll丢失也可能是 CQ?盘的 boot.ini 文g的问?br>boot.ini讄的启动分Z正确当然找不到hal.dll 我记得我有一ơ装了双pȝ 重装windows时发?br>不知道怎么在C盘前加了个分?br>l果提Chal.dll丢失, 原因是以前的C盘已l成了现在的D盘, windows 当然找不到boot.iniQ所以提C错?br>前面的分区删除好?br> M,提示hal.dll丢失,hal.dll损坏不见得就是hal.dll的问?br>很有可能是启动设|不正确
在删除c盘前面分区时候,用了dos下的fdisk。我的c盘前面的盘是一个nonQdos盘,fdisk里面有直接删除这个东西的命oQ用了直接删除之。然后系l一切正常?/div>
maaijin [圣h]
最q不知怎么把hal.dlll删了,D一开机就昄boot.in非法启动Qhal.dll丢失?
l过一L腾,l于解决了问题。解决的Ҏ(gu)如下Q?
首先必须知道自己的计机名称Q这可以从设备管理器里的计算机项中看出。根据不同的?
机名称对应需要扩展的hal.dll为:(x)
acpi multiprocessor pc halmacpi.dl_
acpi uniprocessor pc halaacpi.dl_
advanced configuration and power interface(acpi)pc halacpi.dl_
mps multiprocessor pc halmaps.dl_
mps unitprocessor pc halapic.dl_
standard pc hal.dl_
compaq systempro multiprcessor or 100% compatible halsp.dl_
但问题是如果hal.dll丢失那么q电(sh)脑也无法q去Q怎么可以知道计算机的名称呢?我的?
法比较极端:(x)在f再安一个操作系l,q样也只能进Mơ,但可以知道计机的名UC?
另外也可以用试的方式Q将上述一一试过Q当Ӟ因ؓ(f)目前?sh)脑W二、三U比较常见,可以
先试q两个。我的电(sh)脑ɽW三U故以它Z?
接下来放入启动盘Q从光盘启动Q进入故障修复^台。需要说明的是xp家庭版与专业版可?
通用Q其他版本是否可以没有试q,不推荐用?
之后的命令是Q?
del c:\windows\system32\hal.dll
expand x:\i386\halacpi.dl_ c:\windows\system32\
其中x的意思,举例来说Q如果你分了3个硬盘分区,那么它就代表fQ而不Z的光q
W具体多?
ren c:\windows\system32\halacpi.dll hal.dll
copy c:\windows\hal.dll c:\windows\system32\hal.dll
del c:\windows\hal.dll
exit
q样好了。关于ؓ(f)什么重新命名后hal.dllZ?x)在windows文g夹而非system32下目?
q不清楚Q因是我的电(sh)脑遇到的情况Q如果不攑ֿQ可以用dir命o在ren后看看hal.dll
到底在哪儿;如果在system32下,׃用用copy命o了?
说明上面的是我复制过来的,我也是这h好了pȝ
分析Q?/pre>
q是因ؓ(f)pȝ和当前硬件不兼容引v的?/pre>
解决Ҏ(gu)Q?/pre>
首先BIOSh到f?1c版本Q然后利用HP提供的xp sp3版本安装pȝO(jin)K了!
注意Q?/pre>
f.11c软g可以|上下蝲Q还有驱动程序应在安装系l前下蝲好?br>
[
解决 ]vgn-tz33B按装
pȝ 后L提示hal.dll
文g 丢失 hal.dll是在system32下的pȝ文g?其实q个文gq不一定是丢失?有可能是boot.ini出错?我{载一个朋友回{的{案 希望你能解决该问?以下内容{载:(x) 提示hal.dll损坏或丢?实际上该文gq不一定不存在,可以_(d)拷个文g回去system32里,Ҏ(gu)是不可以解决?出现q个错误的原因是boot.ini文g出错,D引导不了机器从指定的路径启动,那样pȝ
搜烦 其他的\径,而其他\径上是没有hal.dll文g?׃(x)提示q个错误.一般的解决办法是进?span class=t_tag onclick=tagshow(event) href="tag.php?name=%E6%95%85%E9%9A%9C">故障恢复控制?用fixboot命o,如果q样修复不了boot.ini,qbootcfg/add来重建boot.ini?q个是由于C盘根目录下的boot.ini文g非法Q导致默认从C:Q?span class=t_tag onclick=tagshow(event) href="tag.php?name=Windows">Windows启动Q但是又׃你的
Win dows XP没有安装在C盘,所以系l提C找不到HAL.DLL文g。启动因而失败。解x法是重新~辑B(ti)oot.ini文g?1)、用Win9X启动盘启动,使用EDIT.EXE命o~辑q个文g。启动EDIT.EXE以后只要按照正确的格式输入Boot.ini文g的内容,保存为Boot.ini文g卛_?2)、用COPY CON命o创徏一个Boot.ini文g。在DOS下输入Copy Con C:Qboot.ini以后回R。然后按照Boot.ini文g的格式输入,每输入一行敲一ơ回车键Q当全部内容输入完毕以后Q按CTRL+ZQ?span class=t_tag onclick=tagshow(event) href="tag.php?name=%E5%B1%8F%E5%B9%95">屏幕上会(x)看到^Z的提C。这个时候再敲一ơ回车,pȝ?x)提C? file(s) copied.q就表示创徏成功了?3)、用故障恢复控制台里面的bootcfg命o?4)、在别的
?sh)?/span>上创建好以后Q拷贝到受损?sh)脑的C盘根目录上覆盖源文g卛_?q有个办法,你用个u盘从别个那里拷一?hal.dll文gQ然后插在你的电(sh)脑上Q再用一张系l安装盘放进光驱。在W一选择里,选择修复Q就可以q入doc里了。然后从a: b: 一直试下去Q看Cu盘就要吧?copy hal.dll c:\windows\system32\hal.dll 可以了Q?原理是在安装pȝ的时候,u盘也?x)被到Q就可以用了。Y盘也可以。但你应该不?x)有软?br>
丢失~少hal.dll文g
windows root\system32\hal.dll"丢失~少hal.dll文g
昨天遇见一个机器,开机后提示出现~少hal.dll文g丢失的情况,以前的经验告诉我很可能是盘到寿了,有坏道了Q但是问客户得知盘是新换的Q以前的盘是有q坏道,但是新硬盘有坏道的几率不大,
于是装系l光盘启动但是在GHOST的时候便卡住Q以为是光驱ȝ不行Q但是换了盘q是不行Q于是进PE装了pȝQ但是启动后装机速度q是Q本机配|还可以的,P42.8Q?65PEQ?12Q?4 gf440昑֍,重启之后竟然没有q入桌面Q郁P再重启,q回q入了,怪怪啊Q但是搞了几下重启进桌面后又L了,于是开机箱重新插拔盘数据U和甉|口,q回机器畅多了Q但是老家伙只l我20元,哎,郁闷dQ好歹也是硬件故障啊Q真后?zhn)没给她直接换件了Q好人难做啊Q什么世道啊
知识:(x)hal.dll是Windowsg提取层模块,该用于用于解决硬件的复杂性?br>对应?HAL 文g
ACPI Multiprocessor PC halmacpi.dl_
ACPI Uniprocessor PC halaacpi.dl_
Advanced Configuration and Power Interface (ACPI) PC halacpi.dl_
MPS Multiprocessor PC halmps.dl_
MPS Uniprocessor PC halapic.dl_
Standard PC hal.dl_
Compaq SystemPro Multiprocessor or 100% Compatible halsp.dl_
属于Q?Microsoft Windows Operating System
解决Ҏ(gu)Q?/p>
提示hal.dll损坏或丢?实际上该文gq不一定不存在,可以_(d)拷个文g回去system32里,Ҏ(gu)是不可以解决?出现q个错误的原因是boot.ini文g出错,D引导不了机器从指定的路径启动,那样pȝ搜烦其他的\径,而其他\径上是没有hal.dll文g?׃(x)提示q个错误.一般的解决办法是进入故障恢复控制台,用fixboot命o,如果q样修复不了boot.ini,qbootcfg/add来重建boot.ini?/p>
q个是由于C盘根目录下的boot.ini文g非法Q导致默认从C:QWindows启动Q但是又׃你的Windows XP没有安装在C盘,所以系l提C找不到HAL.DLL文g。启动因而失败。解x法是重新~辑B(ti)oot.ini文g?/p>
1)、用Win9X启动盘启动,使用EDIT.EXE命o~辑q个文g。启动EDIT.EXE以后只要按照正确的格式输入Boot.ini文g的内容,保存为Boot.ini文g卛_?/p>
2)、用COPY CON命o创徏一个Boot.ini文g。在DOS下输入Copy Con C:Qboot.ini以后回R。然后按照Boot.ini文g的格式输入,每输入一行敲一ơ回车键Q当全部内容输入完毕以后Q按CTRL+ZQ屏q上?x)看到^Z的提C。这个时候再敲一ơ回车,pȝ?x)提C? file(s) copied.q就表示创徏成功了?/p>
3)、用故障恢复控制台里面的bootcfg命o?/p>
4)、在别的?sh)脑上创建好以后Q拷贝到受损?sh)脑的C盘根目录上覆盖源文g卛_?/p>
q有个办法,你用个u盘从别个那里拷一?hal.dll文gQ然后插在你的电(sh)脑上Q再用一张系l安装盘放进光驱。在W一选择里,选择修复Q就可以q入doc里了。然后从a: b: 一直试下去Q看Cu盘就要吧? copy hal.dll c:\windows\system32\hal.dll 可以了Q? 原理是在安装pȝ的时候,u盘也?x)被到Q就可以用了?/p>
最q不知怎么把hal.dlll删了,D一开机就昄boot.in非法启动Qhal.dll丢失。经q一L腾,l于解决了问题。解决的Ҏ(gu)如下Q?br>首先必须知道自己的计机名称Q这可以从设备管理器里的计算机项中看出。根据不同的计算机名U对应需要扩展的hal.dll为:(x) acpi multiprocessor pc halmacpi.dl_ acpi uniprocessor pc halaacpi.dl_ advanced configuration and power interface(acpi)pc halacpi.dl_ mps multiprocessor pc halmaps.dl_ mps unitprocessor pc halapic.dl_ standard pc hal.dl_ compaq systempro multiprcessor or 100% compatible halsp.dl_ 但问题是如果hal.dll丢失那么q电(sh)脑也无法q去Q怎么可以知道计算机的名称呢?我的Ҏ(gu)比较极端Q在f再安一个操作系l,q样也只能进Mơ,但可以知道计机的名UC。另外也可以用试的方式,上qC一试过Q当Ӟ因ؓ(f)目前?sh)脑W二、三U比较常见,可以先试q两个。我的电(sh)脑ɽW三U故以它Z?br>接下来放入启动盘Q从光盘启动Q进入故障修复^台。需要说明的是xp家庭版与专业版可以通用Q其他版本是否可以没有试q,不推荐用?br>之后的命令是Q?br>del c:\windows\system32\hal.dll expand x:\i386\halacpi.dl_ c:\windows\system32\ 其中x的意思,举例来说Q如果你分了3个硬盘分区,那么它就代表fQ而不Z的光qW具体多?br>ren c:\windows\system32\halacpi.dll hal.dll copy c:\windows\hal.dll c:\windows\system32\hal.dll del c:\windows\hal.dll exit q样好了。关于ؓ(f)什么重新命名后hal.dllZ?x)在windows文g夹而非system32下目前还不清楚,因ؓ(f)q是我的?sh)脑遇到的情况,如果不放心,可以用dir命o在ren后看看hal.dll到底在哪儿;如果在system32下,׃用用copy命o了?/p>
WinXP启动提示~少Windows root/system32/hal.dll。不重装XP如何解决Q?/p>
q个是由于C盘根目录下的boot.ini文g非法Q导致默认从C:\\Windows启动Q由于你的Windows XP没有安装在C盘,所以系l提C找不到HAL.DLL文g。启动因而失败?br>解决Ҏ(gu)是重新编辑B(ti)oot.ini文g。下面几U便于操作的Q?/p>
1)、用Win9X启动盘启动,使用EDIT.EXE命o~辑q个文g。启动EDIT.EXE以后只要按照正确的格式输入Boot.ini文g的内容,保存为Boot.ini文g卛_?/p>
2)、用COPY CON命o创徏一个Boot.ini文g。在DOS下输入Copy Con C:\\boot.ini以后回R。然后按照Boot.ini文g的格式输入,每输入一行敲一ơ回车键Q当全部内容输入完毕以后Q按CTRL+ZQ屏q上?x)看到^Z的提C。这个时候再敲一ơ回车,pȝ?x)提C? file(s) copied.q就表示创徏成功了?/p>
3)、用故障恢复控制台里面的bootcfg命o?/p>
4)、在别的?sh)脑上创建好以后Q拷贝到受损?sh)脑的C盘根目录上覆盖源文g卛_?/p>
是在DOS下运行EDIT.EXE命o啊进DOS后输入EDIT.EXE后回车即? 好把,换种Ҏ(gu),一个目?在给你一个办?你试一? hal.dll文g损坏或丢?那么意味着C盘下的BOOT.INI文g被损?br>重新写一个BOOT.INI文g,你想法进入DOS后复制到C盘跟目录下即? 以下是BOOT.INI 文g的内?你复制后保存为BOOT.INI文g. [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect 用文本写?保存为BOOT.INI 考入有启动功能的U? 用U盘进入DOS,用COPY X:\BOOT.INI C:\BOOT.INI卛_
]]>最q在学习(fn)计算机图形,顺便收集了些相兌料,跟大家分享下Q?/title> http://www.shnenglu.com/wangqiulin/archive/2010/09/27/127872.html王秋?/dc:creator>王秋?/author>Mon, 27 Sep 2010 06:52:00 GMT http://www.shnenglu.com/wangqiulin/archive/2010/09/27/127872.html http://www.shnenglu.com/wangqiulin/comments/127872.html http://www.shnenglu.com/wangqiulin/archive/2010/09/27/127872.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/127872.html http://www.shnenglu.com/wangqiulin/services/trackbacks/127872.html 阅读全文 ]]> 用U盘装pȝ的三U方?/title> http://www.shnenglu.com/wangqiulin/archive/2010/09/27/127869.html王秋?/dc:creator>王秋?/author>Mon, 27 Sep 2010 06:40:00 GMT http://www.shnenglu.com/wangqiulin/archive/2010/09/27/127869.html http://www.shnenglu.com/wangqiulin/comments/127869.html http://www.shnenglu.com/wangqiulin/archive/2010/09/27/127869.html#Feedback 0 http://www.shnenglu.com/wangqiulin/comments/commentRss/127869.html http://www.shnenglu.com/wangqiulin/services/trackbacks/127869.html
用U盘装pȝ的三U方?br> 我今天上午花?0多元C一?G的Kingston牌的U盘,学习(fn)制作U盘启动盘Q用U盘装pȝ。我刚试验成了三UU盘装pȝ的方法,现在说出来让大家分n?br> Q一Q制作好U盘启动盘?br> 1. 下蝲MaxDOS+WinPEQ本论坛上有。解压后Q点击[安装.bat] 2.在安装界面输?#8220;Y”回R?br> 3.安装E序检到你当前已q接好的U盘,q列表出来。如果没有检到U盘,请你重插U盘,q按“Y”q回主菜单,重新开始安装?br> 4.按Q意键后,弹出格式化工P-----------选中U?--------------FAT32------------------ga开始格式化U盘?br> 5.格式化完成后Q点?#8220;定”Q再点击下面?#8220;关闭”Q安装程序将q入下一步,写入引导记录Q按L键进入写入引D录?br> 6.按Q意键后,Q?Q磁盘:(x)选U盘。(2Q选项Q可以不作Q何改变,也可以勾选四:(x)不保存原来MBRQ不引导原来MBRQ输l信息,启动时不搜烦软盘。点[安装]开始写入引对{?br> 7.写入引导记录后,回R------------退出?br> 8.按Q意键Q数据写入?br> 9.数据写入界面Q在‘目标文g?#8217;处,?#8216;览’Q选择U盘,点击[安装] 10.安装完成后,按Q意键退?br> 11.xQ双启动U盘启动盘制作好了,重启?sh)脑Q在BIOS里设|HDD中的USB启动?br> 12,把系l光盘镜像文件ISO和GHOST镜像文g复制到U盘里?br> Q二Q用U盘安装系l的三种Ҏ(gu)Q?br>1 U盘启动,qPEQ开?-------E序------------盘光盘工具----------Virtual Drive Manager (PE自带的虚拟光驱)--------装蝲---------览---------选中U盘上的光盘镜像文件ISOQ?-----打开--------------定。(此时QVirtual Drive Manager不要关闭Q(q时Q打开PE下的“我的?sh)?#8221;Q?#8220;有移动可存储讑֤”下,有你刚才所选中镜像的CD了。)。再从开始菜单找到GHOSTE序Q就可安装系l了?br>2. U盘启动后Q进PE--------开?--------E序-------------克隆工具----------调出GHOST界面Q选中U盘上的镜像文件GHOQ就可以把系l装到C盘了?br>3. 加蝲虚拟光驱Q?---------选中U盘里的ISO光盘镜像Q?---------打开虚拟光驱Q?------------览光盘文gQ?-------------双击GHOST镜像安装器,----------定----------重启计算?---------------开机后p动进入GHOST界面q行安装pȝ?/p>
]]>
þþƷ2020 |
þþþþѹۿ |
ƷþþþþƷ |
þþƷ˳ |
һþ |
þҹۺϾþ |
Ļþи
|
ձƷþþþĻ8 |
þùƷþùƷ |
þþþ뾫Ʒ |
þˬˬƬAV |
Ʒ99þþþþè |
ŷպľþ |
þþþƷþþþɫӰ |
ľƷþþþþò |
þ99Ʒ鶹 |
ԭƷ99þþƷ66 |
Ʒþþþþù |
AVþþþòվ
|
þþƵ |
ۺϾþҹAV |
˶ݺɫۺϾþ |
ŷ츾XXXXԾþþ |
þþƷƷ |
þþžƷ |
97þۺɫۺɫhd |
þþþĻɫ |
ݺۺϾþۺ88 |
ݺݸɺݺݾþ |
þþƷ99þþ |
˾þþƷһ
|
ԴӰȷþԴ |
þﶼǾƷ |
˾ƷŮ˾þþ |
91ƷѾþþþþþþ |
ƷþëƬ |
2021þùԲľƷ |
㽶þһӰԺ
|
97Ʒ˾þþô߽
|
ƷþþþþҲ
|
þˬˬƬav鷳 |