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

Posted in IIS

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;
}
Posted in C

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

Posted in C

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);
}
Posted in C

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

Posted in C

C language – linked list

linked list ของ Integer  โดยการแทรกข้อมูล แบบเรียงลำดับจากน้อยไปมาก

ที่มา: การโปรแกรมภาษา C ดร.ดวงแก้ว สวามิภักดิ์

linklist.h

/*linklist.h*/

typedef struct node * NODEPTR;

struct node {
	int data;
	NODEPTR next;
} NODE;

void print_list(NODEPTR link);
int insert_list(int val, NODEPTR * link);
NODEPTR make_node(int value);

linklist.c

/*linklist.c*/

#include <stdio.h>
#include <stdlib.h>
#include "linklist.h"

int main() {

	NODEPTR link = NULL; // the sorted linked list
	int val; // input value

	val = 10;
	insert_list(val, &link);
	val = 20;
	insert_list(val, &link);
	val = 1;
	insert_list(val, &link);
	val = 15;
	insert_list(val, &link);

	print_list(link);
	return 0;
}

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

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

NODEPTR make_node(int value) {
	NODEPTR newptr;
	//char *malloc();

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