??xml version="1.0" encoding="utf-8" standalone="yes"?>国产伦精品一区二区三区精品视频 ,亚洲最快最全在线视频,色视频在线播放http://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309492.htmlC.B.KC.B.KThu, 16 Jul 2009 02:23:00 GMThttp://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309492.htmlhttp://www.aygfsteel.com/ccbobocat/comments/309492.htmlhttp://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309492.html#Feedback1http://www.aygfsteel.com/ccbobocat/comments/commentRss/309492.htmlhttp://www.aygfsteel.com/ccbobocat/services/trackbacks/309492.html**
 * <pre>
 * Title:         HttpRequestProxy.java
 * Project:     HP-Common
 * Type:        com.hengpeng.common.web.HttpRequestProxy
 * Author:        benl
 * Create:         2007-7-3 上午03:07:07
 * Copyright:     Copyright (c) 2007
 * Company:
 * <pre>
 */
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.log4j.Logger;

/**
 * <pre>
 * HTTPh代理c?br> * </pre>
 *
 * @author benl
 * @version 1.0, 2007-7-3
 */
public class HttpRequestProxy
{
    /**
     * q接时
     */
    private static int connectTimeOut = 5000;

    /**
     * d数据时
     */
    private static int readTimeOut = 10000;

    /**
     * h~码
     */
    private static String requestEncoding = "GBK";

    private static Logger logger = Logger.getLogger(HttpRequestProxy.class);

    /**
     * <pre>
     * 发送带参数的GET的HTTPh
     * </pre>
     *
     * @param reqUrl HTTPhURL
     * @param parameters 参数映射?br>     * @return HTTP响应的字W串
     */
    public static String doGet(String reqUrl, Map parameters,
            String recvEncoding)
    {
        HttpURLConnection url_con = null;
        String responseContent = null;
        try
        {
            StringBuffer params = new StringBuffer();
            for (Iterator iter = parameters.entrySet().iterator(); iter
                    .hasNext();)
            {
                Entry element = (Entry) iter.next();
                params.append(element.getKey().toString());
                params.append("=");
                params.append(URLEncoder.encode(element.getValue().toString(),
                        HttpRequestProxy.requestEncoding));
                params.append("&");
            }

            if (params.length() > 0)
            {
                params = params.deleteCharAt(params.length() - 1);
            }

            URL url = new URL(reqUrl);
            url_con = (HttpURLConnection) url.openConnection();
            url_con.setRequestMethod("GET");
            System.setProperty("sun.net.client.defaultConnectTimeout", String
                    .valueOf(HttpRequestProxy.connectTimeOut));// Q单位:(x)毫秒Qjdk1.4换成q个,q接时
            System.setProperty("sun.net.client.defaultReadTimeout", String
                    .valueOf(HttpRequestProxy.readTimeOut)); // Q单位:(x)毫秒Qjdk1.4换成q个,L作超?br>            // url_con.setConnectTimeout(5000);//Q单位:(x)毫秒Qjdk
            // 1.5换成q个,q接时
            // url_con.setReadTimeout(5000);//Q单位:(x)毫秒Qjdk 1.5换成q个,L作超?br>            url_con.setDoOutput(true);
            byte[] b = params.toString().getBytes();
            url_con.getOutputStream().write(b, 0, b.length);
            url_con.getOutputStream().flush();
            url_con.getOutputStream().close();

            InputStream in = url_con.getInputStream();
            BufferedReader rd = new BufferedReader(new InputStreamReader(in,
                    recvEncoding));
            String tempLine = rd.readLine();
            StringBuffer temp = new StringBuffer();
            String crlf=System.getProperty("line.separator");
            while (tempLine != null)
            {
                temp.append(tempLine);
                temp.append(crlf);
                tempLine = rd.readLine();
            }
            responseContent = temp.toString();
            rd.close();
            in.close();
        }
        catch (IOException e)
        {
            logger.error("|络故障", e);
        }
        finally
        {
            if (url_con != null)
            {
                url_con.disconnect();
            }
        }

        return responseContent;
    }

    /**
     * <pre>
     * 发送不带参数的GET的HTTPh
     * </pre>
     *
     * @param reqUrl HTTPhURL
     * @return HTTP响应的字W串
     */
    public static String doGet(String reqUrl, String recvEncoding)
    {
        HttpURLConnection url_con = null;
        String responseContent = null;
        try
        {
            StringBuffer params = new StringBuffer();
            String queryUrl = reqUrl;
            int paramIndex = reqUrl.indexOf("?");

            if (paramIndex > 0)
            {
                queryUrl = reqUrl.substring(0, paramIndex);
                String parameters = reqUrl.substring(paramIndex + 1, reqUrl
                        .length());
                String[] paramArray = parameters.split("&");
                for (int i = 0; i < paramArray.length; i++)
                {
                    String string = paramArray[i];
                    int index = string.indexOf("=");
                    if (index > 0)
                    {
                        String parameter = string.substring(0, index);
                        String value = string.substring(index + 1, string
                                .length());
                        params.append(parameter);
                        params.append("=");
                        params.append(URLEncoder.encode(value,
                                HttpRequestProxy.requestEncoding));
                        params.append("&");
                    }
                }

                params = params.deleteCharAt(params.length() - 1);
            }

            URL url = new URL(queryUrl);
            url_con = (HttpURLConnection) url.openConnection();
            url_con.setRequestMethod("GET");
            System.setProperty("sun.net.client.defaultConnectTimeout", String
                    .valueOf(HttpRequestProxy.connectTimeOut));// Q单位:(x)毫秒Qjdk1.4换成q个,q接时
            System.setProperty("sun.net.client.defaultReadTimeout", String
                    .valueOf(HttpRequestProxy.readTimeOut)); // Q单位:(x)毫秒Qjdk1.4换成q个,L作超?br>            // url_con.setConnectTimeout(5000);//Q单位:(x)毫秒Qjdk
            // 1.5换成q个,q接时
            // url_con.setReadTimeout(5000);//Q单位:(x)毫秒Qjdk 1.5换成q个,L作超?br>            url_con.setDoOutput(true);
            byte[] b = params.toString().getBytes();
            url_con.getOutputStream().write(b, 0, b.length);
            url_con.getOutputStream().flush();
            url_con.getOutputStream().close();
            InputStream in = url_con.getInputStream();
            BufferedReader rd = new BufferedReader(new InputStreamReader(in,
                    recvEncoding));
            String tempLine = rd.readLine();
            StringBuffer temp = new StringBuffer();
            String crlf=System.getProperty("line.separator");
            while (tempLine != null)
            {
                temp.append(tempLine);
                temp.append(crlf);
                tempLine = rd.readLine();
            }
            responseContent = temp.toString();
            rd.close();
            in.close();
        }
        catch (IOException e)
        {
            logger.error("|络故障", e);
        }
        finally
        {
            if (url_con != null)
            {
                url_con.disconnect();
            }
        }

        return responseContent;
    }

    /**
     * <pre>
     * 发送带参数的POST的HTTPh
     * </pre>
     *
     * @param reqUrl HTTPhURL
     * @param parameters 参数映射?br>     * @return HTTP响应的字W串
     */
    public static String doPost(String reqUrl, Map parameters,
            String recvEncoding)
    {
        HttpURLConnection url_con = null;
        String responseContent = null;
        try
        {
            StringBuffer params = new StringBuffer();
            for (Iterator iter = parameters.entrySet().iterator(); iter
                    .hasNext();)
            {
                Entry element = (Entry) iter.next();
                params.append(element.getKey().toString());
                params.append("=");
                params.append(URLEncoder.encode(element.getValue().toString(),
                        HttpRequestProxy.requestEncoding));
                params.append("&");
            }

            if (params.length() > 0)
            {
                params = params.deleteCharAt(params.length() - 1);
            }

            URL url = new URL(reqUrl);
            url_con = (HttpURLConnection) url.openConnection();
            url_con.setRequestMethod("POST");
            System.setProperty("sun.net.client.defaultConnectTimeout", String
                    .valueOf(HttpRequestProxy.connectTimeOut));// Q单位:(x)毫秒Qjdk1.4换成q个,q接时
            System.setProperty("sun.net.client.defaultReadTimeout", String
                    .valueOf(HttpRequestProxy.readTimeOut)); // Q单位:(x)毫秒Qjdk1.4换成q个,L作超?br>            // url_con.setConnectTimeout(5000);//Q单位:(x)毫秒Qjdk
            // 1.5换成q个,q接时
            // url_con.setReadTimeout(5000);//Q单位:(x)毫秒Qjdk 1.5换成q个,L作超?br>            url_con.setDoOutput(true);
            byte[] b = params.toString().getBytes();
            url_con.getOutputStream().write(b, 0, b.length);
            url_con.getOutputStream().flush();
            url_con.getOutputStream().close();

            InputStream in = url_con.getInputStream();
            BufferedReader rd = new BufferedReader(new InputStreamReader(in,
                    recvEncoding));
            String tempLine = rd.readLine();
            StringBuffer tempStr = new StringBuffer();
            String crlf=System.getProperty("line.separator");
            while (tempLine != null)
            {
                tempStr.append(tempLine);
                tempStr.append(crlf);
                tempLine = rd.readLine();
            }
            responseContent = tempStr.toString();
            rd.close();
            in.close();
        }
        catch (IOException e)
        {
            logger.error("|络故障", e);
        }
        finally
        {
            if (url_con != null)
            {
                url_con.disconnect();
            }
        }
        return responseContent;
    }

    /**
     * @return q接时(毫秒)
     * @see com.hengpeng.common.web.HttpRequestProxy#connectTimeOut
     */
    public static int getConnectTimeOut()
    {
        return HttpRequestProxy.connectTimeOut;
    }

    /**
     * @return d数据时(毫秒)
     * @see com.hengpeng.common.web.HttpRequestProxy#readTimeOut
     */
    public static int getReadTimeOut()
    {
        return HttpRequestProxy.readTimeOut;
    }

    /**
     * @return h~码
     * @see com.hengpeng.common.web.HttpRequestProxy#requestEncoding
     */
    public static String getRequestEncoding()
    {
        return requestEncoding;
    }

    /**
     * @param connectTimeOut q接时(毫秒)
     * @see com.hengpeng.common.web.HttpRequestProxy#connectTimeOut
     */
    public static void setConnectTimeOut(int connectTimeOut)
    {
        HttpRequestProxy.connectTimeOut = connectTimeOut;
    }

    /**
     * @param readTimeOut d数据时(毫秒)
     * @see com.hengpeng.common.web.HttpRequestProxy#readTimeOut
     */
    public static void setReadTimeOut(int readTimeOut)
    {
        HttpRequestProxy.readTimeOut = readTimeOut;
    }

    /**
     * @param requestEncoding h~码
     * @see com.hengpeng.common.web.HttpRequestProxy#requestEncoding
     */
    public static void setRequestEncoding(String requestEncoding)
    {
        HttpRequestProxy.requestEncoding = requestEncoding;
    }
   
    public static void main(String[] args)
    {
        Map map = new HashMap();
        map.put("actionType", "1");
//        map.put("issueId", "33");
        String temp = HttpRequestProxy.doPost("http://192.168.0.99/AgentPortal/autoHandler", map, "GBK");
        System.out.println("q回的消息是:"+temp);
       
    }
}
文章来源:http://blog.163.com/ccbobo_cat/blog/static/320994622009616102329953

C.B.K 2009-07-16 10:23 发表评论
]]>
[导入]Serialization(序列? CZhttp://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309493.htmlC.B.KC.B.KThu, 16 Jul 2009 02:16:00 GMThttp://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309493.htmlhttp://www.aygfsteel.com/ccbobocat/comments/309493.htmlhttp://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309493.html#Feedback0http://www.aygfsteel.com/ccbobocat/comments/commentRss/309493.htmlhttp://www.aygfsteel.com/ccbobocat/services/trackbacks/309493.html

/*

下面的程序说明了怎样实现对象序列化和反序列化。它由实例化一个MyClasscȝ对象开始。该对象有三个实例变量,它们的类型分别是StringQint和double。这是我们希望存储和恢复的信息?/p>

FileOutputStream被创建,引用了一个名为“serial”的文g。ؓ(f)该文件流创徏一个ObjectOutputStream。ObjectOutputStream 的writeObject( )Ҏ(gu)用来序列化对象。对象的输出被h和关闭?/div>
然后Q引用名为“serial”的文g创徏一个FileInputStreamcdƈ文g创徏一个ObjectInputStreamcRObjectInputStream 的readObject( )Ҏ(gu)用来反序列化对象。然后对象输入流被关闭?/div>
注意MyClass被定义成实现Serializable接口。如果不q样做,会(x)引发一个NotSerializableException异常。试囑ց一些把MyClass实例变量声明成transient的实验。那些数据在序列化过E中不被保存

*/

import java.io.*;
class MyClass implements Serializable{
 String s;
 int i;
 double d;
 public MyClass (String s,int i,double d){
  this.s = s;
  this.i = i;
  this.d = d;
 }
 public String toString(){
  return "s=" + s + "; i=" + i + "; d=" + d;
 }
}
class SerializationDemo{
 public static void main(String[] args){
  //Object serialization.
  try{
   MyClass object1 = new MyClass("Evan",9,9.9e10);
   System.out.println("object1 : " +object1);
   FileOutputStream fos = new FileOutputStream("serial");
   ObjectOutputStream oos = new ObjectOutputStream(fos);
   oos.writeObject(object1);
   oos.flush();
   oos.close();
  }catch(Exception e){
   System.out.println("Exception during serialization :" + e);
   System.exit(0);
  }
  //Object deserialization.
  try{
   MyClass object2 ;
   FileInputStream fis = new FileInputStream("serial");
   ObjectInputStream ois = new ObjectInputStream(fis);
   object2 = (MyClass)ois.readObject();
   ois.close();
   System.out.println("object2 : " +object2);
  }catch(Exception e){
   System.out.println("Exception during serialization :" + e);
   System.exit(0);
  }
 }
}


文章来源:http://blog.163.com/ccbobo_cat/blog/static/320994622009616101541196

C.B.K 2009-07-16 10:16 发表评论
]]>[导入]transient关键?/title><link>http://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309494.html</link><dc:creator>C.B.K</dc:creator><author>C.B.K</author><pubDate>Thu, 16 Jul 2009 02:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309494.html</guid><wfw:comment>http://www.aygfsteel.com/ccbobocat/comments/309494.html</wfw:comment><comments>http://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ccbobocat/comments/commentRss/309494.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ccbobocat/services/trackbacks/309494.html</trackback:ping><description><![CDATA[<div>Java的serialization提供了一U持久化对象实例的机制。当持久化对象时Q可能有一个特D的对象数据成员Q我们不? <br>用serialization机制来保存它。ؓ(f)了在一个特定对象的一个域上关闭serializationQ可以在q个域前加上关键字transient? <br>transient是Java语言的关键字Q用来表CZ个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的g包括在串行化的表CZQ然而非transient型的变量是被包括q去的?/div><br>文章来源:<a >http://blog.163.com/ccbobo_cat/blog/static/3209946220096161094144</a><img src ="http://www.aygfsteel.com/ccbobocat/aggbug/309494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ccbobocat/" target="_blank">C.B.K</a> 2009-07-16 10:09 <a href="http://www.aygfsteel.com/ccbobocat/archive/2009/07/16/309494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Javascript 常用正则表达?http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309495.htmlC.B.KC.B.KFri, 10 Jul 2009 04:52:00 GMThttp://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309495.htmlhttp://www.aygfsteel.com/ccbobocat/comments/309495.htmlhttp://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309495.html#Feedback0http://www.aygfsteel.com/ccbobocat/comments/commentRss/309495.htmlhttp://www.aygfsteel.com/ccbobocat/services/trackbacks/309495.html

匚w中文字符的正则表辑ּQ?[\u4e00-\u9fa5]
匚w双字节字W?包括汉字在内)Q?[^\x00-\xff]

应用Q计字W串的长度(一个双字节字符长度?QASCII字符?Q?br>String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
匚wI的正则表辑ּQ?\n[\s| ]*\r
匚wHTML标记的正则表辑ּQ?/<(.*)>.*<\/>|<(.*) \/>/
匚w首尾I格的正则表辑ּQ?(^\s*)|(\s*$)

应用Qjavascript中没有像vbscript那样的trim函数Q我们就可以利用q个表达式来实现Q如下:(x)
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}


利用正则表达式分解和转换IP地址Q?br>下面是利用正则表辑ּ匚wIP地址QƈIP地址转换成对应数值的javascriptE序Q?br>
function IP2V(ip) {
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匚wIP地址的正则表辑ּ
if(re.test(ip)) {
return RegExp.*Math.pow(255,3))+RegExp.*Math.pow(255,2))+RegExp.*255+RegExp.*1
}
else {
throw new Error("Not a valid IP address!")
}
}


不过上面的程序如果不用正则表辑ּQ而直接用split函数来分解可能更单,E序如下Q?br>
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是Q?+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匚wEmail地址的正则表辑ּQ?\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匚w|址URL的正则表辑ּQ?http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?


利用正则表达式去除字串中重复的字W的法E序Q?br>
var s="abacabefgeeii"
var s1=s.replace(/(.).*/g,"")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //l果为:(x)abcefgi


用正则表辑ּ从URL地址中提取文件名的javascriptE序Q如下结果ؓ(f)page1

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/)([^\.]+).*/ig,"")
alert(s)


利用正则表达式限制网表单里的文本框输入内容Q?br>
用正则表辑ּ限制只能输入中文Q?br>onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

用正则表辑ּ限制只能输入全角字符Q?br>onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

用正则表辑ּ限制只能输入数字Q?br>onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

用正则表辑ּ限制只能输入数字和英文:(x)
onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"


文章来源:http://blog.163.com/ccbobo_cat/blog/static/32099462200961005220547

C.B.K 2009-07-10 12:52 发表评论
]]>
[导入]ant中的classpath配置和?/title><link>http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309496.html</link><dc:creator>C.B.K</dc:creator><author>C.B.K</author><pubDate>Thu, 09 Jul 2009 21:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309496.html</guid><wfw:comment>http://www.aygfsteel.com/ccbobocat/comments/309496.html</wfw:comment><comments>http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ccbobocat/comments/commentRss/309496.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ccbobocat/services/trackbacks/309496.html</trackback:ping><description><![CDATA[<div>ant手册中的ant配置classpath采用classpath标签Q可是我发现q样配置L不好用,q是直接用path可以使用 <br>  讄classpath的方法有多种 <br><path id="project.classpath"> <br>    1<pathelement path="${basedir}/lib/aa.jar"/> <br>   2<pathelement location="aa.jar"/>?的区别在于location可以d前\径,当然可以使用l对路径 <br>    3<filelist id="file" dir="${basedir}/lin"> <br>          <file name="a.jar"/> <br>          <file name="d:lib/b.jar"/> <br>     </filelist> <br>   4<fileset dir="d:/lib"> <br>       <include name="**/*.jar"/> <br>    </fileset> <br>   5手册上说了dirset也好用,但是我测试了q是不要用的 <br> </path>    <br>  下面说classpath的? <br>   样例如下 <br>     <javac scdir="./src" destdir="./classes"> <br>           <classpath refid="project.classpath"/>  <br>   </javac> <br> <br> <br>下面是比较四U方式的优缺? <br>   W一U调用的需要设|绝对\径适合W三方jar? <br>    W二U则适合jar包和build.xml文g在同一目录下的情况Q但是我觉得两个文g攑֜一hw就不合理,估计是用的情况不多? <br>  前两个都是设|单个jar? <br>   W三U是一个文仉合适合引入不同路径的jar包,但是需要输入每个jar包的名字Q比较繁琐,适合于jar包属于不同位|,比较分散但是不多的情? <br>  W四U是一个文件夹Q可以采用匹配模式来引入Q这个适合在同一个文件夹下,文g名字比较多的情况? </div><br>文章来源:<a >http://blog.163.com/ccbobo_cat/blog/static/32099462200961051533899</a><img src ="http://www.aygfsteel.com/ccbobocat/aggbug/309496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ccbobocat/" target="_blank">C.B.K</a> 2009-07-10 05:16 <a href="http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]ant的几个重要集合(SETQ?/title><link>http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309497.html</link><dc:creator>C.B.K</dc:creator><author>C.B.K</author><pubDate>Thu, 09 Jul 2009 21:05:00 GMT</pubDate><guid>http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309497.html</guid><wfw:comment>http://www.aygfsteel.com/ccbobocat/comments/309497.html</wfw:comment><comments>http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309497.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ccbobocat/comments/commentRss/309497.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ccbobocat/services/trackbacks/309497.html</trackback:ping><description><![CDATA[<div>ant的构建文件中Q有很多核心cdQ这些核心类型都是XXXSet的Ş式,主要有以下几个:(x)PatternSet、DirSet、FileSet、PropertySet、ZipFileSet{。说下前三个的功能就应该可以举一反三了?br>           1.PatternSet  x式集合。顾名思义Q就是定义一个模式,他可以用来指定一个文仉合。常常可以被外部的target引用Q复用性很强。有includes? includesfile、excludes、excludesfile属性。每个属性里面还可以嵌套name、if、unless{类型?br>           2.DirSet  即目录集合。用来定义目录的集合。有dir、casesensitive、followsymlinks和PatternSet也有的那4个属性。上面说qPatternSet可以很好的复用。下面就是一个例子:(x)<br> <div ><div ><div >Xml代码 </div></div><ol start="1"><li><span><span ><</span><span >dirset</span><span> </span><span >dir</span><span>=</span><span >"${build.dir}"</span><span >></span><span>  </span></span></li><li><span>               <span ><</span><span >patternset</span><span> </span><span >id</span><span>=</span><span >"non.test.classes"</span><span >></span><span>  </span></span></li><li><span>                      <span ><</span><span >include</span><span> </span><span >name</span><span>=</span><span >"apps/**/classes"</span><span >/></span><span>  </span></span></li><li><span>                       <span ><</span><span >exclude</span><span> </span><span >name</span><span>=</span><span >"apps/**/*Test*"</span><span >/></span><span>  </span></span></li><li><span>                <span ></</span><span >patternset</span><span >></span><span>  </span></span></li><li><span> <span ></</span><span >dirset</span><span >></span><span>  </span></span></li></ol></div><pre style="display: none;" ><dirset dir="${build.dir}"> <patternset id="non.test.classes"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/> </patternset> </dirset> </pre>   <p>        q是用patternset来定义DirSet的模式,q个模式q可以在外部引用。如Q?br></p> <div ><div ><div >Xml代码 </div></div><ol start="1"><li><span><span ><</span><span >dirset</span><span> </span><span >dir</span><span>=</span><span >"{build.dir}"</span><span >></span><span>  </span></span></li><li><span>                <span ><</span><span >patternset</span><span> </span><span >refid</span><span>=</span><span >"non.test.classes"</span><span >/></span><span>  </span></span></li><li><span><span ></</span><span >dirset</span><span >></span><span>  </span></span></li></ol></div><pre style="display: none;" > <dirset dir="{build.dir}"> <patternset refid="non.test.classes"/> </dirset></pre>   <p>          上面定义了一个名为non.test.classes的PatternSetQ现在就可以引用他了。refid即reference ID.<br>           3.FileSetx仉合,他的内部属性与DirSet几乎一P只是多了一个file和defaultexcludes。和dirset一Pl常 嵌入patternset来定义文仉合;但是也有另外一个很常用的类型,叫selectorQ它q不是一个真正的cd或元素,只是一U、一cȝ型的l? U。如contains、date、depend、depth、different、filename、present、containsregexp? size、type{?/p></div><br>文章来源:<a >http://blog.163.com/ccbobo_cat/blog/static/3209946220096105521217</a><img src ="http://www.aygfsteel.com/ccbobocat/aggbug/309497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ccbobocat/" target="_blank">C.B.K</a> 2009-07-10 05:05 <a href="http://www.aygfsteel.com/ccbobocat/archive/2009/07/10/309497.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]message from server: &quot;Host &apos;80dc58cd93cd4c3&apos; is not allowed to connect to this MySQL server&quot;http://www.aygfsteel.com/ccbobocat/archive/2009/06/29/309498.htmlC.B.KC.B.KMon, 29 Jun 2009 06:51:00 GMThttp://www.aygfsteel.com/ccbobocat/archive/2009/06/29/309498.htmlhttp://www.aygfsteel.com/ccbobocat/comments/309498.htmlhttp://www.aygfsteel.com/ccbobocat/archive/2009/06/29/309498.html#Feedback0http://www.aygfsteel.com/ccbobocat/comments/commentRss/309498.htmlhttp://www.aygfsteel.com/ccbobocat/services/trackbacks/309498.htmlW一U方法:(x)
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON <dbname>.*
-> TO <username>@<host name>
-> IDENTIFIED BY '<password>';

where <dbname> is the name of the database you are tyring to connect to, <username> is the username of the user trying to connect to the database, <host name> the name of the host (in your case the XXX host) and <password> the password of the user.
W二U方法:(x)
通过客户端Y件设|用L(fng)L以及(qing)权限Q?br>message from server: Host 80dc58cd93cd4c3 is not allowed to connect to this MySQL server - ccbobo_cat - 落壁の蜘蛛Μ的博客message from server: Host 80dc58cd93cd4c3 is not allowed to connect to this MySQL server - ccbobo_cat - 落壁の蜘蛛Μ的博客
文章来源:http://blog.163.com/ccbobo_cat/blog/static/32099462200952925050579

C.B.K 2009-06-29 14:51 发表评论
]]>
[导入]多线E编E学?fn)笔记—条件变?/title><link>http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309499.html</link><dc:creator>C.B.K</dc:creator><author>C.B.K</author><pubDate>Tue, 23 Jun 2009 09:07:00 GMT</pubDate><guid>http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309499.html</guid><wfw:comment>http://www.aygfsteel.com/ccbobocat/comments/309499.html</wfw:comment><comments>http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ccbobocat/comments/commentRss/309499.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ccbobocat/services/trackbacks/309499.html</trackback:ping><description><![CDATA[<div><div style="margin: 15px;"> <p style="margin: 0cm 0cm 0pt;"><b style=""><font size="3"><span style="font-family: 宋体;">一、什么是条g变量</span><span lang="EN-US"></span></font></b></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""><font face="Times New Roman">       </font></span></span><span style="font-family: 宋体;">与互斥锁不同Q条件变量是用来{待而不是用来上锁的。条件变量用来自动阻塞一个线E,直到某特D情况发生ؓ(f)止。通常条g变量和互斥锁同时使用?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""><font face="Times New Roman">       </font></span></span><span style="font-family: 宋体;">条g变量使我们可以睡眠等待某U条件出现。条件变量是利用U程间共享的全局变量q行同步的一U机Ӟ主要包括两个动作Q一个线E等?/span><span lang="EN-US"><font face="Times New Roman">"</font></span><span style="font-family: 宋体;">条g变量的条件成?/span><span lang="EN-US"><font face="Times New Roman">"</font></span><span style="font-family: 宋体;">而挂P另一个线E</span><span lang="EN-US"><font face="Times New Roman">"</font></span><span style="font-family: 宋体;">条g成立</span><span lang="EN-US"><font face="Times New Roman">"</font></span><span style="font-family: 宋体;">Q给出条件成立信P?/span></font></p> <p style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">? 件的是在互斥锁的保护下q行的。如果一个条件ؓ(f)假,一个线E自动阻塞,q攄待状态改变的互斥锁。如果另一个线E改变了条gQ它发信L(fng)兌的条? 变量Q唤醒一个或多个{待它的U程Q重新获得互斥锁Q重新评h件。如果两q程׃n可读写的内存Q条件变量可以被用来实现q两q程间的U程同步?/font></span></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""><font face="Times New Roman">       </font></span></span><span style="font-family: 宋体;">使用条g变量之前要先q行初始化。可以在单个语句中生成和初始化一个条件变量如Q?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">pthread_cond_t my_condition=PTHREAD_COND_INITIALIZER;</font></span><span style="font-family: 宋体;">Q用于进E间U程的通信Q?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">也可以利用函?/span><span lang="EN-US"><font face="Times New Roman">pthread_cond_init</font></span><span style="font-family: 宋体;">动态初始化?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3"> </font></span></p> <p style="margin: 0cm 0cm 0pt;"><b style=""><font size="3"><span style="font-family: 宋体;">二、条件变量函?/span><span lang="EN-US"></span></font></b></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">1</font></span><span style="font-family: 宋体;">Q?/span></font></p> <table style="border: medium none ; margin: auto 6.75pt; border-collapse: collapse;" align="left" border="1" cellpadding="0" cellspacing="0"> <tbody> <tr style=""> <td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">名称Q?/font></span></p></td> <td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">pthread_cond_init</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">目标Q?/span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">条g变量初始?/font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">头文Ӟ(x)</font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">#include < pthread.h></font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">函数原ŞQ?/font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr);</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">参数</span><span lang="EN-US"><font face="Times New Roman">: </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">cptr<span style="">  </span></font></span><span style="font-family: 宋体;">条g变量</span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">attr<span style="">  </span></font></span><span style="font-family: 宋体;">条g变量属?/span></font></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">q回|(x)</span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">成功q回</span><span lang="EN-US"><font face="Times New Roman">0</font></span><span style="font-family: 宋体;">Q出错返回错误编受?/span></font></p></td></tr></tbody></table> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style="">     </span></font></span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""></span></font></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""></span></font></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""></span></font></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""></span></font></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""></span></font></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style="">  </span>pthread_cond_init</font></span><span style="font-family: 宋体;">函数可以用来初始化一个条件变量。他使用变量</span><span lang="EN-US"><font face="Times New Roman">attr</font></span><span style="font-family: 宋体;">所指定的属性来初始化一个条件变量,如果参数</span><span lang="EN-US"><font face="Times New Roman">attr</font></span><span style="font-family: 宋体;">为空Q那么它?yu)用缺省的属性来讄所指定的条件变量?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3"> </font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">2.</font></span></p> <table style="border: medium none ; margin: auto 6.75pt; border-collapse: collapse;" align="left" border="1" cellpadding="0" cellspacing="0"> <tbody> <tr style=""> <td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">名称Q?/font></span></p></td> <td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">pthread_cond_destroy</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">目标Q?/span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">条g变量摧毁</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">头文Ӟ(x)</font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">#include < pthread.h></font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">函数原ŞQ?/font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">int pthread_cond_destroy(pthread_cond_t *cond);</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">参数</span><span lang="EN-US"><font face="Times New Roman">: </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">cptr<span style="">  </span></font></span><span style="font-family: 宋体;">条g变量</span></font></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">q回|(x)</span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">成功q回</span><span lang="EN-US"><font face="Times New Roman">0</font></span><span style="font-family: 宋体;">Q出错返回错误编受?/span></font></p></td></tr></tbody></table> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style="">      </span></font></span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""></span></font></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""></span></font></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman"><span style=""> </span>pthread_cond_destroy</font></span><span style="font-family: 宋体;">函数可以用来摧毁所指定的条件变量,同时会(x)释放所l它分配的资源。调用该函数的进E也q不要求{待在参数所指定的条件变量上?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3"> </font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">3.</font></span></p> <table style="border: medium none ; margin: auto 6.75pt; border-collapse: collapse;" align="left" border="1" cellpadding="0" cellspacing="0"> <tbody> <tr style=""> <td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">名称Q?/font></span></p></td> <td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">pthread_cond_wait/pthread_cond_timedwait</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">目标Q?/span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">条g变量{待</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">头文Ӟ(x)</font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">#include < pthread.h></font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">函数原ŞQ?/font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">int pthread_cond_wait(pthread_cond_t *cond,pthread_mutex_t *mutex); </font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">int pthread_cond_timedwait(pthread_cond_t *cond,pthread_mutex_t mytex,const struct timespec *abstime);</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">参数</span><span lang="EN-US"><font face="Times New Roman">: </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">cond </font></span><span style="font-family: 宋体;">条g变量</span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">mutex </font></span><span style="font-family: 宋体;">互斥?/span></font></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">q回|(x)</span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">成功q回</span><span lang="EN-US"><font face="Times New Roman">0</font></span><span style="font-family: 宋体;">Q出错返回错误编受?/span></font></p></td></tr></tbody></table> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""><font face="Times New Roman">       </font></span></span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span><span style="font-family: 宋体;">W一个参?/span><span lang="EN-US"><font face="Times New Roman">*cond</font></span><span style="font-family: 宋体;">是指向一个条件变量的指针。第二个参数</span><span lang="EN-US"><font face="Times New Roman">*mutex</font></span><span style="font-family: 宋体;">则是对相关的互斥锁的指针。函?/span><span lang="EN-US"><font face="Times New Roman">pthread_cond_timedwait</font></span><span style="font-family: 宋体;">函数cd与函?/span><span lang="EN-US"><font face="Times New Roman">pthread_cond_wait,</font></span><span style="font-family: 宋体;">区别在于Q如果达到或是超q所引用的参?/span><span lang="EN-US"><font face="Times New Roman">*abstime,</font></span><span style="font-family: 宋体;">它将l束q返回错?/span><span lang="EN-US"><font face="Times New Roman">ETIME.pthread_cond_timedwait</font></span><span style="font-family: 宋体;">函数的参?/span><span lang="EN-US"><font face="Times New Roman">*abstime</font></span><span style="font-family: 宋体;">指向一?/span><span lang="EN-US"><font face="Times New Roman">timespec</font></span><span style="font-family: 宋体;">l构。该l构如下Q?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">typedef struct timespec{</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font size="3"><font face="Times New Roman"><span style="">       </span>time_t tv_sec;</font></font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font size="3"><font face="Times New Roman"><span style="">       </span>long tv_nsex;</font></font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">}timespec_t;</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3"> </font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">3.</font></span></p> <table style="border: medium none ; margin: auto 6.75pt; border-collapse: collapse;" align="left" border="1" cellpadding="0" cellspacing="0"> <tbody> <tr style=""> <td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">名称Q?/font></span></p></td> <td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">pthread_cond_signal/pthread_cond_broadcast</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">目标Q?/span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">条g变量通知</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">头文Ӟ(x)</font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">#include < pthread.h></font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">函数原ŞQ?/font></span></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">int pthread_cond_signal(pthread_cond_t *cond); </font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">int pthread_cond_broadcast(pthread_cond_t *cond);</font></span></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">参数</span><span lang="EN-US"><font face="Times New Roman">: </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">cond </font></span><span style="font-family: 宋体;">条g变量</span></font></p></td></tr> <tr style=""> <td style="border-style: none solid solid; border-color: rgb(236, 233, 216) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 77.4pt; background-color: transparent;" valign="top" width="103"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">q回|(x)</span><span lang="EN-US"><font face="Times New Roman"> </font></span></font></p></td> <td style="border-style: none solid solid none; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 348.7pt; background-color: transparent;" valign="top" width="465"> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span style="font-family: 宋体;">成功q回</span><span lang="EN-US"><font face="Times New Roman">0</font></span><span style="font-family: 宋体;">Q出错返回错误编受?/span></font></p></td></tr></tbody></table> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""><font face="Times New Roman">      </font></span></span></font></p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""></span></span></font> </p> <p style="margin: 0cm 0cm 0pt;"><font size="3"><span lang="EN-US"><span style=""> </span></span><span style="font-family: 宋体;">参数</span><span lang="EN-US"><font face="Times New Roman">*cond</font></span><span style="font-family: 宋体;">是对cd?/span><span lang="EN-US"><font face="Times New Roman">pthread_cond_t </font></span><span style="font-family: 宋体;">的一个条件变量的指针。当调用</span><span lang="EN-US"><font face="Times New Roman">pthread_cond_signal</font></span><span style="font-family: 宋体;">时一个在相同条g变量上阻塞的U程被解锁。如果同时有多个U程dQ则p度策略确定接攉知的线E。如果调?/span><span lang="EN-US"><font face="Times New Roman">pthread_cond_broadcast,</font></span><span style="font-family: 宋体;">则将通知d在这个条件变量上的所有线E。一旦被唤醒Q线E仍然会(x)要求互斥锁。如果当前没有线E等待通知Q则上面两种调用实际上成Z个空操作。如果参?/span><span lang="EN-US"><font face="Times New Roman">*cond</font></span><span style="font-family: 宋体;">指向非法地址Q则q回?/span><span lang="EN-US"><font face="Times New Roman">EINVAL</font></span><span style="font-family: 宋体;">?/span></font></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3"> </font></span></p> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">下面是一个简单的例子Q我们可以从E序的运行来了解条g变量的作用?/font></span></p> <table style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"> <tbody> <tr style=""> <td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 426.1pt; background-color: transparent;" valign="top" width="568"> <p style="margin: 0cm 0cm 0pt;"><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">#include <pthread.h><br>#include <stdio.h><br>#include <stdlib.h><br><br>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">初始化互斥锁</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">*/<br>pthread_cond_t cond = PTHREAD_COND_INITIALIZER;/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">初始化条件变?/span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">*/<br><br>void *thread1(void *);<br>void *thread2(void *);<br><br>int i=1;<br>int main(void)<br>{<br><span style="">    </span>pthread_t t_a;<br><span style="">    </span>pthread_t t_b;<br><br><span style="">    </span>pthread_create(&t_a,NULL,thread2,(void *)NULL);/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">创徏q程</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">t_a*/<br><span style="">    </span>pthread_create(&t_b,NULL,thread1,(void *)NULL); /*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">创徏q程</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">t_b*/<br><span style="">    </span>pthread_join(t_b, NULL);/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">{待q程</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">t_b</span><span style="font-size: 10pt; color: black; font-family: 宋体;">l束</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">*/<br><span style="">    </span>pthread_mutex_destroy(&mutex);<br><span style="">    </span>pthread_cond_destroy(&cond);<br><span style="">    </span>exit(0);<br>}<br><br>void *thread1(void *junk)<br>{<br><span style="">    </span>for(i=1;i<=9;i++) <br><span style="">    </span>{<br>    <span style="">    </span>pthread_mutex_lock(&mutex);/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">锁住互斥?/span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">*/<br>    <span style="">    </span>if(i%3==0)<br>        <span style="">     </span>pthread_cond_signal(&cond);/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">条g改变Q发送信P通知</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">t_b</span><span style="font-size: 10pt; color: black; font-family: 宋体;">q程</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">*/<br>    <span style="">    </span>else        <br>        <span style="">     </span>printf("thead1:%d\n",i);<br>    <span style="">    </span>pthread_mutex_unlock(&mutex);/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">解锁互斥?/span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">*/</span></p> <p style="margin: 0cm 0cm 0pt 20.05pt; text-indent: 20pt;"><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">sleep(1);<br>}</span></p> <p style="margin: 0cm 0cm 0pt;"><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">}<br><br>void *thread2(void *junk)<br>{<br><span style="">    </span>while(i<9)<br><span style="">    </span>{<br>    <span style="">    </span>pthread_mutex_lock(&mutex);</span></p> <p style="margin: 0cm 0cm 0pt; text-indent: 40pt;"><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">if(i%3!=0)<br>    <span style="">    </span><span style="">    </span>pthread_cond_wait(&cond,&mutex);/*</span><span style="font-size: 10pt; color: black; font-family: 宋体;">{待</span><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">*/<br>    <span style="">    </span>printf("thread2:%d\n",i);<br>    <span style="">    </span>pthread_mutex_unlock(&mutex);</span></p> <p style="margin: 0cm 0cm 0pt 20.05pt; text-indent: 20pt;"><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">sleep(1);<br>}</span></p> <p style="margin: 0cm 0cm 0pt;"><span style="font-size: 10pt; color: black; font-family: Verdana;" lang="EN-US">}</span></p></td></tr></tbody></table> <p style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span style="font-family: 宋体;">E序创徏?/span><span lang="EN-US"><font face="Times New Roman">2</font></span><span style="font-family: 宋体;">个新U程使他们同步运行,实现q程</span><span lang="EN-US"><font face="Times New Roman">t_b</font></span><span style="font-family: 宋体;">打印</span><span lang="EN-US"><font face="Times New Roman">20</font></span><span style="font-family: 宋体;">以内</span><span lang="EN-US"><font face="Times New Roman">3</font></span><span style="font-family: 宋体;">的倍数Q?/span><span lang="EN-US"><font face="Times New Roman">t_a</font></span><span style="font-family: 宋体;">打印其他的数Q程序开始线E?/span><span lang="EN-US"><font face="Times New Roman">t_b</font></span><span style="font-family: 宋体;">不满x件等待,U程</span><span lang="EN-US"><font face="Times New Roman">t_a</font></span><span style="font-family: 宋体;">q行?/span><span lang="EN-US"><font face="Times New Roman">a</font></span><span style="font-family: 宋体;">循环?/span><span lang="EN-US"><font face="Times New Roman">1</font></span><span style="font-family: 宋体;">q打印。直?/span><span lang="EN-US"><font face="Times New Roman">i</font></span><span style="font-family: 宋体;">?/span><span lang="EN-US"><font face="Times New Roman">3</font></span><span style="font-family: 宋体;">的倍数ӞU程</span><span lang="EN-US"><font face="Times New Roman">t_a</font></span><span style="font-family: 宋体;">发送信号通知q程</span><span lang="EN-US"><font face="Times New Roman">t_b</font></span><span style="font-family: 宋体;">Q这?/span><span lang="EN-US"><font face="Times New Roman">t_b</font></span><span style="font-family: 宋体;">满条gQ打?/span><span lang="EN-US"><font face="Times New Roman">i</font></span><span style="font-family: 宋体;">倹{?/span><font face="Times New Roman"> </font></font></p> <p style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体;"><font size="3">下面是运行结果:(x)</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">#cc –lpthread –o cond cond.c</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">#./cond</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread1:1</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread1:2</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread2:3</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread1:4</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread1:5</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread2:6</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread1:7</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread1:8</font></span></p> <p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><font face="Times New Roman" size="3">thread2:9</font></span></p> </div></div><br>文章来源:<a >http://blog.163.com/ccbobo_cat/blog/static/3209946220095235658763</a><img src ="http://www.aygfsteel.com/ccbobocat/aggbug/309499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ccbobocat/" target="_blank">C.B.K</a> 2009-06-23 17:07 <a href="http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]从硬盘安装Linuxhttp://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309500.htmlC.B.KC.B.KTue, 23 Jun 2009 08:05:00 GMThttp://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309500.htmlhttp://www.aygfsteel.com/ccbobocat/comments/309500.htmlhttp://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309500.html#Feedback0http://www.aygfsteel.com/ccbobocat/comments/commentRss/309500.htmlhttp://www.aygfsteel.com/ccbobocat/services/trackbacks/309500.html工具Qgrub4dos0.4.2(惌的给我发信,我发l你Qloveitdoit@163.com)

文gQfedora7.0映像文gQ可在网上下载?

q程Q?

1Q解压羃grub4dos0.4.2Q把里面?grldr和menu.lstQ文件复制到c盘根目录下?

2Qfedora7.0映像文g不必解压Q必L在fat32的分区里。把里面的isolinux目录?

的VMLINUZ、INITRD.IMG解压到c盘根目录下?

3Q在c:\下找到menu.lstQ用C本打开q修改,删除其他命o(h)Q添加以下命令!


title Linux System Install

kernel (hd0,0)/vmlinuz

initrd (hd0,0)/initrd.img


4Q修改c:\boot.ini文gQ在最后面dc:\grldr="Start GRUB"q保存即可?

5Q重L(fng)l,选择Start GRUBQ开始安装?
文章来源:http://blog.163.com/ccbobo_cat/blog/static/3209946220095234437396

C.B.K 2009-06-23 16:05 发表评论
]]>
[导入]MySQL数据库的M?qing)双机备?/title><link>http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309501.html</link><dc:creator>C.B.K</dc:creator><author>C.B.K</author><pubDate>Tue, 23 Jun 2009 07:59:00 GMT</pubDate><guid>http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309501.html</guid><wfw:comment>http://www.aygfsteel.com/ccbobocat/comments/309501.html</wfw:comment><comments>http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ccbobocat/comments/commentRss/309501.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ccbobocat/services/trackbacks/309501.html</trackback:ping><description><![CDATA[<div>׃半天旉研究了下下MYSQL的备份实玎ͼ发现其是在MY.CNFQMY.INIQ配|文件中作的讄Q直接设|服务器唯一性ID号加上其它的附加? |,则可作ؓ(f)一台MASTERQ而在 SLAVEZQ也只需要在配置文g中设|一下连接MASTER所需的参数即可,如果在MASTER里也加上q到SLAVE机的参数Q则是双向备䆾 了~~不q,q些q接参数中用到的账号需要注意权限的讄Q否则会(x)搞半天没反就急死你_。。?<br> 我在WIN上和LINUX上各装了MYSQL5Q下面是它们的配|:(x) <br> WIN(172.22.33.33)下的MASTER(׃我改了端?327所以下面多加了个端口方面的Ҏ(gu)处理?的配|(my.iniQ:(x)(**一定要在mysqld配置D中配置Q不象PHPQAPACHE可以随便找个方便的地斚w的,注意哈!Q? <br> <br> [mysqld]<br> #master 讄<br> server-id=1<br> log-bin=c:/masterlog<br> binlog-do-db=db5<br> <br> #实现双机备䆾D,lMASTER同时加上SLAVED?可选哈Q如果不选,那就是WIN到LIN的主从备?<br> <br> master-host=172.22.1.37<br> master-user=backup2<br> master-password=backup2<br> master-port=3306<br> master-connect-retry=60<br> replicate-do-db=db5<br> <br> 数据库中加一个̎? <br> <br> GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER ON *.* <br> TO [email=backup@]backup@'172.22.1.37'[/email] IDENTIFIED by 'backup';<br> q个权限表示Q这个backup账号只能׃备䆾?72.22.1.37讉K只能用来q行备䆾操作 <br> LINUX(172.22.1.37)下的SLAVE机的配置(把安装目录里扑ֈ的Q意一?.cnf拷到/etc/my.cnf下进行修?Q?<br> <br> server-id=2<br> #如果不需要双向备份下面两行可以不?br> #否则q要加一个数据库用户账号<br> /*<br> GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER ON *.* <br> TO [email=backup2@]backup2@'172.22.33.33'[/email] IDENTIFIED by 'backup2';<br> */<br> log-bin=./masterlog<br> binlog-do-db=db5<br> #---------------------------------------<br> master-host=172.22.33.33<br> master-user=backup<br> master-password=backup<br> master-port=3327<br> master-connect-retry=60<br> replicate-do-db=db5<br> ׃只是大概的弄了一下,特别是在数据库用h面没有作仔细试验Q)Q可能会(x)有所不太准确的地方,q有是Q上面测试用到的数据库一定要是已l徏立好q且 l构相同的,两台机子都重启后?x)进行检查,如果出现找不到或者检查到l构不同Q会(x)报错Q最好就是在创徏I数据库时或初始时安装两个一L(fng)数据库后徏立好 关系Q对于不同版本的MYSQLQ官方说明也可以同步Q但想一惻I把MYSQL5 的数据备份到4中去丢失5的特性也没什么意义吧。?/div><br>文章来源:<a >http://blog.163.com/ccbobo_cat/blog/static/32099462200952335921779</a><img src ="http://www.aygfsteel.com/ccbobocat/aggbug/309501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ccbobocat/" target="_blank">C.B.K</a> 2009-06-23 15:59 <a href="http://www.aygfsteel.com/ccbobocat/archive/2009/06/23/309501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ҧ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ұ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ǹ</a>| <a href="http://" target="_blank">ګ</a>| <a href="http://" target="_blank">Ӱ</a>| <a href="http://" target="_blank">º</a>| <a href="http://" target="_blank">Ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͤ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>