Monthly Archives: July 2010

IIS start ไม่ได้ ด้วย Error ดังนี้ unexpected error 0x8ffe2740 occurred

อาการ: IIS start ไม่ได้ ด้วย Error ดังนี้ unexpected error 0x8ffe2740 occurred
สาเหตุ: เกิดจาก port ชนกัน
วิธีแก้ไข: ให้ไปเปลี่ยน port ของ IIS เช่นเปลี่ยนเป็น port 81
ที่มา: “Unexpected Error 0x8ffe2740 Occurred” Error Message When You Try to Start a Web Site

เว็บเมลล์บน Ubuntu

OpenWebMail
https://help.ubuntu.com/community/OpenWebMail
Webmail is software which allows you to view email from any computer, anywhere in the world, through your web browser. OpenWebMail is a simple, fast and popular webmail package. The website is here. This guide will enable you to setup webmail on your own server, for use either within your home network, or outside.
sudo dpkg -i owm2.53-2.deb

Wireless Driver on Ubuntu

ถ้าติดตั้ง Ubuntu เสร็จ แต่ Wireless ยังใช้ไม่ได้ให้ไปที่ System>Administration>Hardware Drivers
รอสักพักก็จะได้หน้าจอแสดง Driver มาให้เลือก โดยมี 2 อัน อันแรกคืออันที่ใช้อยู่ (ซึ่งใช้ไม่ได้) อันที่สองคืออันที่ยังไม่ได้ Activate เพราะไม่ใช่ Open Source ให้เลือกอันนี้ แล้วก็จะใช้ได้
ที่มา: WifiDocs Driver bcm43xx

Mount

แสดงรายระเอียดการ mount ที่เป็นอยู่
mount
ทำการ mount
mount /src /des

C language – compare file

บอกตำแหน่งเริ่มต้นที่ไฟล์ทั้ง 2 ไฟล์ แตกต่างกัน

//Compare File
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    FILE *fp1, *fp2;
    char ch1, ch2, same;
    unsigned long l;

    if (argc != 3) {
        printf("Usage: compare <file 1> <file 2>\n");
        exit(1);
    }

    /* open first file */
    if ((fp1 = fopen(argv[1], "rb")) == NULL) {
        printf("Cannot open first file.\n");
        exit(1);
    }

    /* open second file */
    if ((fp2 = fopen(argv[2], "rb")) == NULL) {
        printf("Cannot open second file.\n");
        exit(1);
    }

    l = 0;
    same = 1;
    /* compare the files */
    while (!feof(fp1)) {
        ch1 = fgetc(fp1);
        if (ferror(fp1)) {
            printf("Error reading first file.\n");
            exit(1);
        }
        ch2 = fgetc(fp2);
        if (ferror(fp2)) {
            printf("Error reading second file.\n");
            exit(1);
        }
        if (ch1 != ch2) {
            printf("Files differ at byte number %lu", l);
            same = 0;
            break;
        }
        l++;
    }
    if (same)
        printf("Files are the same.\n");

    if (fclose(fp1) == EOF) {
        printf("Error closing first file.\n");
        exit(1);
    }

    if (fclose(fp2) == EOF) {
        printf("Error closing second file.\n");
        exit(1);
    }

    return 0;
}

C language – fgets

อ่านข้อมูลจากไฟล์ทีละบรรทัด

/* fgets exmaple */

#include

#define myfile "control"

int main() {
    FILE * fp;

    fp = fopen(myfile, "r");
    if (fp == NULL)
        perror("Error opening file");
    else {
        char mystring[100];
        while (fgets(mystring, sizeof(mystring), fp)) {
            printf(mystring);
        }
        fclose(fp);
    }
    return 0;
}

ที่มา: cplusplus

C language – linked list

linked list ของตัวอักษร โดยการเพิ่มข้อมูลต่อท้าย ข้อมูลเดิม

/*linklist.h*/

typedef struct node * NODEPTR;

struct node {
    char * data;
    NODEPTR next;
} NODE;

void print_list(NODEPTR link);
int insert_list(char * value, NODEPTR * link);
NODEPTR make_node(char * value);
/*linklist.c*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "linklist.h"

int main() {

    NODEPTR link = NULL;
    char str1[] = "A10";
    char str2[] = "A20";
    char str3[] = "B1";
    char str4[] = "B5";

    insert_list(str1, &link);
    insert_list(str2, &link);
    insert_list(str3, &link);
    insert_list(str4, &link);
    print_list(link);
    return 0;
}

void print_list(NODEPTR link) {
    for (; link != NULL; link = link->next) {
        printf("%s\n", link->data);
    }
}

int insert_list(char * value, NODEPTR * link) {
    NODEPTR curr = *link, prev = NULL, make_node(), temp;
    for (; curr != NULL ; curr = curr->next)
        prev = curr;
    if ((temp = make_node(value)) != NULL) {
        temp->next = curr;
        if (prev == NULL)
            *link = temp;
        else
            prev->next = temp;
    }
    return (temp != NULL);
}

NODEPTR make_node(char * value) {
    NODEPTR newptr;

    if ((newptr = (NODEPTR) malloc(sizeof(struct node))) != NULL) {
        newptr->data = value;
        newptr->next = NULL;
    }
    return (newptr);
}

C language – strcpy

/* strcpy example */
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

int main() {
    char str1[] = "Sample string";
    char str2[40];
    char str3[40];

    strcpy(str2, str1);
    strcpy(str3, "copy successful");

    printf("str1: %s\nstr2: %s\nstr3: %s\n", str1, str2, str3);
    return 0;
}

เปลี่ยน str2, str3 จาก array เป็น linked list

/* strcpy example */
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;

int main() {
    char str1[] = "Sample string";
    char * str2 = (char*) calloc(0, sizeof(str1));
    char * str3 = (char*) calloc(0, sizeof(str1));

    strcpy(str2, str1);
    strcpy(str3, "copy successful");

    printf("str1: %s\nstr2: %s\nstr3: %s\n", str1, str2, str3);
    return 0;
}

ที่มา: cplusplus.com