Skip to content

Multitasker-Liang

Note anything.

  • Home
  • File Management
  • Mail Management
  • Stream Live

(Session) Cookie

  • 5 Comments
  • 2017 年 03 月 02 日
  • by
  • jwliang1226

一般使用者常用的Cookie有兩種,一種是一般的Cookie(可設定過期時間,過期後就會自動刪除),一種是Session Cookie(只在此次瀏覽當中有效,關閉瀏覽器就會消失),以下列出一些寫法作為方便使用的用途。

Session Cookie

function getCookie(name) //用於Session Cookie 切 token
{
var nameEQ = name + “=";
var ca = document.cookie.split(‘;’);
for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1); if (c.indexOf(nameEQ) != -1) return c.substring(nameEQ.length,c.length); } return null; } document.cookie="blog=部落格"; //alert(getCookie("blog"));

Cookie

function setCookie(cname, cvalue, exdays)
{
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = “expires="+d.toUTCString();
document.cookie = cname + “=" + cvalue + “; " + expires;
}

function getCookie(cname)
{
var name = cname + “=";
var ca = document.cookie.split(‘;’);
for(var i=0; i

READ MORE
  • Javascript

makefile小記

  • 0 comment
  • 2014 年 02 月 11 日
  • by
  • jwliang1226

make會將整個makefile展開後,再決定變數的值。也就是說,變數的值將會是整個makefile中最後被指定的值。

1、"="
“="表示變數的值最後決定的優先。
x = AAA
y = $(x) BBB
x = xyz
y的值將會是 xyz BBB,而不是 AAA BBB。

2、":="
“:="表示變數的值當下生效,而非最後才決定。
x := AAA
y := $(x) BBB
x := xyz
y的值將會是 AAA BBB,而不是 xyz BBB了。

?= 是一個簡化的語法:若變數未定義,則替它指定新的值。否則,採用原有的值。

使用 define 語法的唯一優點是它可以讓變數直接使用『斷行』。
define foo
uname -a
echo $$SHELL
endef
all:
$(foo)

隱性法則:
abc.o: common.h
gcc -c abc.c
產生 abc.o 的指令就是 gcc -c abc.c,因此在 Makefile 裡可以將其簡化為:
abc.o: common.h

# DEBUG flag的開關
include .config(設定檔)
DEBUG = y
ifeq ($(DEBUG),y)
CFLAGS += -DDEBUG
endif

ref: http://tetralet.luna.com.tw/?op=ViewArticle&articleId=185

READ MORE
  • Code

Binary Hacks-閱讀備忘

  • 0 comment
  • 2014 年 02 月 12 日
  • by
  • jwliang1226

靜態函式庫:
% cc -c -o foo.o foo.c
% cc -c -o bar.o bar.c
% ar ruv libfoo.a foo.o bar.o

動態函式庫:
% cc -fPIC -c -o foo.o foo.c
% cc -fPIC -c -o bar.o bar.c
% cc -shared -Wl,-soname,libfoo.so.0 -o libfoo.so foo.o bar.o
-Wl選項告訴編譯器將後面的參數傳遞給連結器。
-soname則指定了動態庫的soname(簡單共用名稱,Short for shared object name)

ldd指令可比readelf -d更快得到所需的函式庫名稱,並可用LD_TRACE_LOADED_OBJECTS=1來取代,譬如:
LD_TRACE_LOADED_OBJECTS=1 /bin/ls
LD_TRACE_LOADED_OBJECTS=1 /lib/ld-linux.so.2 /lib/librt.so.1

statifier可將動態連結的執行檔與共享函式庫包裝成為一個檔案的GNU/Linux工具。

READ MORE
  • Code

open()與creat()

  • 0 comment
  • 2013 年 01 月 11 日
  • by
  • jwliang1226

open()函數原型

  
#include <sys/types>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *name, int flags);
int open(const char *name, int flags, node_t mode);

/*flags:O_APPEND,O_ASYNC,O_CREAT,O_DIRECT,O_DIRECTORY,O_EXCL,O_LARGEFILE,O_NOCTTY,O_NOFOLLOW,O_NONBLOCK,O_SYNC,O_TRUNC*/

creat()則相等於open()使用O_WRONLY|O_CREATE|O_TRUNC。

fd=creat(file, 0644);
fd=open(file,O_WRONLY|O_CREATE|O_TRUNC,0644);

/*上述兩句相等。*/

同時為何是creat()而不是create()呢?

此為Kenneth Thompson當初的小錯誤而已。

參閱Linux系統程式設計p.26

READ MORE
  • Code

linux系統程式設計-錯誤處理 errno

  • 0 comment
  • 2013 年 01 月 10 日
  • by
  • jwliang1226
  
#include <errno.h>
#include <string.h>

errno變數定義於errno.h之中 : extern int errno;

1.每當linix之中的C語言之API函數發生錯誤時,會將errno賦與一個整數值,不同數值代表不同錯誤。
2.如果其他函數發生錯誤,會將之前之errno值覆蓋,所以跨越函數才偵錯的話必須小心。
3.errno具有thread-safe,不同threads之間有各自的errno變數,不必擔心race condition問題。

 
void perror(const char *str);
/*此函數會將函數發生錯誤的原因印往stderr(標準錯誤輸出),會印出"str之字串:錯誤描述字串"*/
 
char * strerror (int errnum);
/*可將errno轉換為相對應之文字錯誤訊息,不具thread-safe。*/
 
int strerror_r (int errnum, char *buf, size_t len);
/*功能如同strerror,將錯誤描述字串填入buf所指向長度為len之緩衝區,具thread-safe。*/

Example

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

int main()
{
     errno=11; //假設錯誤代碼為11。
     perror("close"); //假設close錯誤,會印出"close: Resource temporarily unavailable"。
     fprintf(stderr,"%d %s\\n",errno,strerror(errno));//會印出"11 Resource temporarily unavailable"。
}

Continue reading “linux系統程式設計-錯誤處理 errno" →

READ MORE
  • Code

近期文章

  • (Session) Cookie
  • makefile小記
  • Binary Hacks-閱讀備忘
  • 受保護的文章:隨手備忘note 超亂寫!
  • Vim plug-in && Color Setting

近期迴響

  • 蒂欧娜 在 (Session) Cookie
  • QQ496229907 在 (Session) Cookie
  • 1452956974 在 (Session) Cookie
  • 3085878268 在 (Session) Cookie
  • zengda 在 (Session) Cookie

彙整

  • 2014 年 十月
  • 2014 年 二月
  • 2014 年 一月
  • 2013 年 十二月
  • 2013 年 四月
  • 2013 年 一月
  • 2012 年 十二月

分類

  • Code
  • Javascript
  • Linux
  • Linux Driver
  • Programming
  • 備忘
  • 閒聊

友站鏈結

  • MoA的實況小站

其它

  • 登入
  • 文章 RSS 訂閱
  • 迴響 RSS 訂閱
  • WordPress 台灣正體中文

Couter

Calendar

二月 2019
日 一 二 三 四 五 六
« 十月    
 12
3456789
10111213141516
17181920212223
2425262728  

分類

  • Code
  • Javascript
  • Linux
  • Linux Driver
  • Programming
  • 備忘
  • 閒聊

頁面

  • File Management
  • Mail Management
  • Stream Live

彙整

  • 2014 年 十月
  • 2014 年 二月
  • 2014 年 一月
  • 2013 年 十二月
  • 2013 年 四月
  • 2013 年 一月
  • 2012 年 十二月
© 2019Multitasker-Liang | Proudly powered by WordPress | Theme by Theme Farmer.