2010年12月14日 星期二

MICobs

同事做的影片, 後面看起來像電影的預告片 ...

2010年12月2日 星期四

還是用cygwin吧~

在windows下開發linux程式 使用cygwin 的移植性會好的多 擷取自官網 "A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality."
mingw 應是使用gcc來開發 "windows程式" 目的不太一樣
http://zhouxiaofan.wordpress.com/2008/03/24/cygwingcc%E4%B8%8Emingw/ (滿詳細的說明)

試著使用低階io 來複製檔案: open() 使用了 O_CREAT旗標, 分別以 dev c++ 跟 cygwin編譯
產生的檔案雖然內容一樣 但卻權限不同 -- 一個是唯讀檔 r--r--r-- 另一個在windows下是不能讀取的 ;
而加入S_IRUSR ! S_IWUSR 指定權限 用dev c++編譯的結果 則是開放所有權限 rwxrwxrwx
**程式中的( ) 與 ! 要改一下

#include (unistd.h)
#include (fcntl.h)
#include (sys/stat.h)
#include (sys/types.h)
#include (stdlib.h)
#include (stdio.h)

int main(){
int nread;

int fd1;
int fd2;
char *ptrbuf;
unsigned long buflen=500;

fd1=open("file_in",O_RDONLY);
fd2=open("file_out",O_RDWRO_CREAT); //O_EXCL,S_IRUSR!S_IWUSR);
ptrbuf=(char*)malloc(sizeof(char)*buflen);
if(ptrbuf==NULL){
printf("Memory error");
}

while((nread=read(fd1,ptrbuf,buflen))>0)
write(fd2,ptrbuf,nread);

close(fd1);
close(fd2);
free(ptrbuf);
return 0;

}