51CTO博客开发
守护进程简单的说就是在后台运行的服务,它的特点是后台运行,脱离终端。如何实现一个守护进程呢?为了阐述清楚,先解释些预备知识。1. 预备知识1.1. 进程,进程组和会话关系 &n
linux下C调用shell命令的方法基本有两个,一个是用system命令,另外一个是用popen方法。 popen(char* commond,char *type)会调用fork()产生 子历程,然后从子历程中调用/bin/sh -c来履行 参数command的指令。如果想把shell命
public: int salary(); int bonus();//直接在这里扩展};//somewhere.cppint Programmer::bonus(){ //define}class MyCompany{p
C++的拷贝构造函数和赋值函数是两个特别比较让人混淆的概念,在使用中也经常容易出错,在这里我把C++的拷贝构造函数和赋值函数总结下。我从以下几个方面来总结: 1、什么是拷贝构造函数和赋值函数,二者的区别 2、C++拷贝构造函数和赋值函数的形式 ,为什么是拷
有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int { public : Compare(int a,int b) { x=a; y=b; } &
这段时间没事,主要是主管太垃圾,没有合理的安排下属,导致我很闲,刚好,我利用这段时间可以好好学习下android。 今天看了android的init这部分,我自己想能不能自己写个守护进程在andorid启动后就运行起来,这样可以更深刻了解android的init的相关知识,只是看书印象不深刻。 &n
写了个很简单的socket通信例子,client和server端分别起两个thread,一个用于发送一个用于接收数据。/** client.c*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#inclu
fork函数是linux中创建进程的函数,linux创建进程只有用fork,别无他法。我自己写代码fork用的不多,对它的一些细节还不是清楚,今天抽空研究了下fork,把它的一些关键点总结一下,以后用到了自己也好有个参考。 1)fork函数会在父进程中创建子进程,子进程的堆,栈,数据段,P
有时候我们的C++/C带代码是现成的,需要向上用JNI封装,然后用Java调用。Java中是没有指针的,但是Java通过JNI调用C++/C接口,C++/C是有指针的,这种情况Java该作何处理。C++/C指针作为输出参数 这种在前面出参为String类型的情况最后更为一般的情况已经提到过。这里在展开来讨论。基本类型 example: &nbs
Java接口是出参的可以有两种方式,第一是把出参作为Java类的meber,还有一种是把出参作为Java接口的参数。1) 出参作为Java类的static member例如 :java接口:public class Person{ static { system.loadLibrary("person_jni"); &
这种情况java的class对应C++/C的结构体,即就是java的class中的成员变量和C++/C中结构体的成员变量一一对应。假设C++/C的结构体定义为:typedef struct _Para_tag{ int x; short y; char az[100]; char
所谓Java基本类型是指: byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型)
前面提到JNI主要是可以完成Java调用C++/C函数,C++/C也可以调用Java方法。先看Java调用C++/C函数。下面先看java接口参数是String类型(入参)example: Java interface public void setName(String name); JNI file: JNIEXPORT v
2、从一个简单例子开始Java通过JNI调用C++/C,通过个简单例子说明,计算两个数之和。Java文件:Add.javapublic class Add{ static { system.loadLibrary("add_jni"); } public static
1 JNI概述 JNI是java native interface的缩写,是用来从java调用C++/C代码,也可以从C++/C调用Java代码。在jni.h中可以看到class _Jv_JavaVM{public: const struct JNIInvokeInt
Java解析XML方式一般有两种,利用SAX解析和利用DOM解析,DOM解析是把整个XML文件当做一个树来存取,如果XML文件较大,那么用DOM解析的效率较低。SAX解析是逐个tag解析xml,如果XML层次过深用SAX解析不是很方便,XML文件层次过深适用于DOM解析,jdk中提供了用SAX解析XML的工具用SAX解析xml步骤:1、创建一个SAXParserFactorySAXParserFa
Service可以和Activity绑定,也可以和service绑定,service有两种绑定方法。这里拿Activity和service绑定为例。1.第一种方法1)在activity中Intentintent=newIntent(MainActivity.this,BinderServiceTest.class);bindService(intent,mConnection,Context.BI
Browse 方法是 ContentDirectory Service中的常用方法,它的主要参数含义在这里总结一下,以防以后搞混; BrowseFlag: 1)是输入参数 2) 为BrowseMetadata:仅仅返回该OBJECT的所有属性。为BrowseDirectChil
C调用C++文件中定义的函数(不可以是类的成员函数),如果不加注意,会有undefined function类似的错误,下面举例说明如何调用。 C++ file: extern "C" void A(void); C++ H file AA.h // 文件名为AA.h #ifndef _AA_H_ #define _AA_H_
我们经常要看别人的代码,面对烦琐的代码,大家最想知道就是函数之间的调用关系,有时代码复杂,再加上函数指针的使用不太容易很快知道函数间的调用。我平时有时用coredump的方法来追踪函数之间的调用关系。 比如你想知道函数A是被怎么被调用的,很简单,构造coredump文件,比如你可以在函数A里面,打印一个NULL的字符串,这
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号