大侠们,我想请教一下linux跳转到应用层的main函数是在哪了进行的跳转?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大侠们,我想请教一下linux跳转到应用层的main函数是在哪了进行的跳转?相关的知识,希望对你有一定的参考价值。
arm的flash中分为bootload,内核,文件系统,和应用层,这4个部分,那么我想问下程序是在哪跳入到我的应用层的main函数中的?
请大侠们指出具体的跳转位置。
我现在查到的是在/etc/init.d 中进行修改,但是我不知道具体在哪修改?
你的系统起来之前,你的应用程序,是不会启动的。为什么呢?因为你用到的最简单的printf都是系统给你包装好的。
你执行你的程序的时候,是系统先提供服务的。没有你的系统服务,你执行的程序都无法起来一个进程。
启动一个进程之前,系统给你分配好资源,包括你的进程ID等等一大堆东西,这样你的进程才可以有运行的环境。(中间的机制我无法给你解答,我只晓得win下面,你双击一个程序,是有一个loader来帮你组织环境的,linux内核相关的我没看过)。
然后,至于这个系统服务,应该是靠内核支持的吧(心虚,没查过资料),环境组织好了之后,才开始跳转到你的程序初始的地方。
你去看下linux的启动过程吧,具体过程我也记不清楚了,不过最先执行的肯定是bootloader,等于是你PC的bios,然后就是有一个程序段引导内核的解压,到内存(RAM)当中去,然后开始跳转到你的内核某处开始,内核就顺势启动了,然后,,,我就忘掉了。。查书去。
你想在/etc/init.d修改什么...
启动时候的层级?还是...
各个版本linux之间稍有不同.
是不是想看到系统启动的时候默认启动的服务之类的. 参考技术A 靠init进程启动用户进程。
想要用MFC操作excel文件,有些问题向大侠们请教!
有一个已经存在的excel文件,里面只有一个sheet1,现在想对其操作,生成一个sheet2,并将sheet2改名为“测试结果”,看了很多例子,其中涉及到类、变量、路径、模板等问题,自己没有做过这方面的,有点理不清思路。请高手指点一下,要读写excel应该先干啥,再干啥,就是指点一下步骤,谢谢!
m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks());m_ExlBook.AttachDispatch(m_ExlBooks.Add(_variant_t(TempPath)));
//TempPath 获取文件路径
m_ExlSheets.AttachDispatch(m_ExlBook.GetWorksheets(),TRUE);
m_ExlSheets.Add(vtMissing,vtMissing,_variant_t((long)2),vtMissing);
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
m_ExlSheet.SetName("测试结果");追问
谢谢你的帮助。
我要实现的功能是要先把一些数据填写到sheet1中,然后生成sheet2,改名为“测试结果”,再把另外一些数据填写到sheet2中,数据填写我已经知道该怎么做。
以上的实现程序我是像都写在一个button里面,点击button实现。你给我的这些程序我看到过有些例子上类似的,但是我不太清楚其中一些变量的定义和声明,是直接写在button函数里就可以吗,还是要先给出一些声明,比如Workbooks workbooks这样的,这是关键!
Workbooks workbooks 这些要声明的,
_Application m_ExlApp;
Range m_ExlRge;
_Worksheet m_ExlSheet;
Worksheets m_ExlSheets;
_Workbook m_ExlBook;
Workbooks m_ExlBooks;
Font ft;
Shapes shapes;
Shape shape;
Characters characters;
TextFrame textFrame;
LineFormat lineformat;
ColorFormat colorformat;
最好是放在.h,具体要看你需要什么再添加类, 注意的是引用excel 如果在其他地方也用到,(不是一个DIALOG)就要
#ifndef EMP_H_H
#define EMP_H_H
#include "excel.h"
#endif
实现你前面一个功能只要加一个循环
while()
再设一个变量 i=1;
循环一次i++,添加一次数据,怎么循环,退出,你琢磨下。
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)i)),TRUE);
if(i==1)
if(i==2)
m_ExlSheet.SetName("测试结果");//你想要的名字
m_ExlSheets.AttachDispatch(m_ExlBook.GetWorksheets(),TRUE);
您好,请问这句是什么意思呢?
m_ExlSheet.AttachDispatch(m_ExlSheets.GetItem(_variant_t((long)2)),TRUE);
m_ExlSheet.SetName("测试结果");
第一句:这个是不是说,要想操作某一个sheet,先用GetItem选定,然后对其操作呢?long1代表
sheet1?long2代表sheet2?
现在基本弄明白了要怎么做了,想再确定一下具体内容,谢谢!
m_ExlBook 前面是获取工作簿/模板
m_ExlSheets.AttachDispatch(m_ExlBook.GetWorksheets(),TRUE);
加载sheet页面
后面数字就代表第几个sheet
你说的“加载sheet页面”就是选定这个sheet,然后后面的操作(比如写入数据)就是写入到这个选定的sheet对吧?
另外:
(1)已经存在的文件为abc.xls,如何选定这个文件呢?语句是m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks());是这句吗?怎样将abc.xls加上呢?
(2)m_ExlRge.SetItem(_variant_t((long)2),_variant_t((long)3),_variant_t("课程名")); 这句意思是向第2行第3列单元格写入数据 “课程名” 吗?
1、差不多-
2、m_ExlBooks.AttachDispatch(m_ExlApp.GetWorkbooks());纯粹加载sheet
不是这句,这句在于获取一个前面的
m_ExlBook.AttachDispatch(m_ExlBooks.Add(_variant_t(TempPath)));这个的sheet //这个就是模板路径
这句。TempPath:文件的路径名(..debug\\abc.xls),你要去获取的,怎么读取文件你去看看怎么弄-有很多现成的代码,你可以设置断点debug下具体看看怎么获得文件的路径,可能跟你想的不一样-
3、是的-这些你去试下就知道--
就这样吧!
请问 “模板” 具体是什么啊,是microsoft office里的excel文件?还是指我要进行操作的文件?
CString theAppPath,theAppName;
char Path[MAX_PATH];
GetModuleFileName(NULL,Path,MAX_PATH);
theAppPath=(CString)Path;
theAppName=AfxGetApp()->m_pszAppName;
theAppName+=".exe";
CString TempPath="";
TempPath=theAppPath+"Template.xls";
可以针对我的问题解释一下有关路径和模板的问题吗,就差这一点了
模板可能是空的excel 也可以是你建立好的excel 。就是你要操作的excel。
GetModuleFileName(NULL,Path,MAX_PATH);//获取程序运行路径(包括程序文件名字),一般在DEBUG下面。
theAppName=AfxGetApp()->m_pszAppName;// theAppName获取程序文件名字,不带后缀格式。
theAppName+=".exe"; //程序文件名
中间一段就是程序运行路径-程序文件名=文件需要的前一个目录(路径);..\debug
CString TempPath="";
TempPath=theAppPath+"Template.xls";//你操作的文件名完整路径 Template.xls:你的文件名
写了这么多,你应该懂了!就这样 了---
难道还不满意..
啥意思啊,你这太专业了,看不懂!
以上是关于大侠们,我想请教一下linux跳转到应用层的main函数是在哪了进行的跳转?的主要内容,如果未能解决你的问题,请参考以下文章
请教各位大侠,apache+tomcat 怎么实现http,https的自动切换跳转?
瑞萨RL78 bootloader boot区跳转到app区 无法运行app程序