顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - infoman

頁: [1]
1
C/C++程式設計討論區 / BSTR跟char有何不同?
« 於: 2014-01-16 21:47 »
請問各位學長 BSTR跟char有何不同?
若要將一個函式輸出從char改為BSTR要如何修改
char *show(void)
{
   char string[]="Hello";
   return string;
}
我使用的是DEV C++

2
最近剛學PostgreSQL用的是系統內安裝的7.2版, 玩了一陣子後覺得在網上找到的資訊
有滿多是講8.x版的, 所以便把版本換成了8.0版, 可是換新版本後之前舊版能用的拿到新
版就不能用了, 剛碰到的是plpgsql的問題
先建立handler

CREATE FUNCTION "plpgsql_call_handler" () RETURNS opaque AS '/usr/lib/plpgsql.so', 'plpgsql_call_handler' LANGUAGE 'C';

再建立plpgsql語言

CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER "plpgsql_call_handler" LANCOMPILER 'PL/pgSQL';

會出現訊息
WARNING:  changing return type of function plpgsql_call_handler from "opaque" to "language_handler"
可是有建立成功
再來建立function

CREATE FUNCTION "functest" () RETURNS text AS '
  DECLARE
    curtime datetime;
  BEGIN
    curtime := ''now'';
  RETURN curtime;
  END;
  ' LANGUAGE 'plpgsql';

也有建立成功, 不過在執行 select functest(); 時就會出現錯誤訊息

ERROR:  type "datetime" does not exist
CONTEXT:  compile of PL/pgSQL function "functest" near line 2

不過這在7.2版時使用都很正常, 沒出現任何錯誤訊息, 為何換到新版就不能用了
是在語法上有哪邊要改嗎? 若是語法上有差異那從舊版上dump下來的資料還原
到新版上不就會出現問題?

3
Linux 討論版 / QOS無法管制上傳頻寬
« 於: 2009-11-04 09:57 »
我朋友使用一條8m-2m的ADSL, 提供給20幾台電腦使用
使用HTB+TC的方式來做QOS
代碼: [選擇]
#!/bin/sh
#

# QoS ppp0  上傳方面
#
# 清除ppp0所有佇列規則
tc qdisc del dev ppp0 root 2>/dev/null

# 定義最頂層(根)佇列規則,並指定 default 類別編號
tc qdisc add dev ppp0 root handle 10: htb default 10

# 定義第一層的 10:1 類別 (總頻寬)
tc class add dev ppp0 parent 10:  classid 10:1 htb rate 200kbps ceil 200kbps

# 定義第二層葉類別
tc class add dev ppp0 parent 10:1 classid 10:10 htb rate 5kbps ceil 10kbps prio 5
tc class add dev ppp0 parent 10:1 classid 10:20 htb rate 10kbps ceil 20kbps prio 2
tc class add dev ppp0 parent 10:1 classid 10:30 htb rate 10kbps ceil 20kbps prio 2

# 定義各葉類別的佇列規則
tc qdisc add dev ppp0 parent 10:10 handle 101: pfifo
tc qdisc add dev ppp0 parent 10:20 handle 102: pfifo
tc qdisc add dev ppp0 parent 10:30 handle 103: pfifo

# 設定過濾器
tc filter add dev ppp0 parent 10: protocol ip prio 100 handle 10 fw  classid 10:10
tc filter add dev ppp0 parent 10: protocol ip prio 100 handle 20 fw  classid 10:20
tc filter add dev ppp0 parent 10: protocol ip prio 100 handle 30 fw  classid 10:30


# QoS eth1  下載方面
#
tc qdisc del dev eth1 root 2>/dev/null

tc qdisc add dev eth1 root handle 10: htb default 30

tc class add dev eth1 parent 10:  classid 10:1 htb rate 1250kbps ceil 1250kbps

tc class add dev eth1 parent 10:1 classid 10:10 htb rate 10kbps ceil 30kbps prio 2
tc class add dev eth1 parent 10:1 classid 10:20 htb rate 50kbps ceil 200kbps prio 2
tc class add dev eth1 parent 10:1 classid 10:30 htb rate 50kbps ceil 200kbps prio 2

tc qdisc add dev eth1 parent 10:10 handle 101: pfifo
tc qdisc add dev eth1 parent 10:20 handle 102: pfifo
tc qdisc add dev eth1 parent 10:30 handle 103: pfifo

tc filter add dev eth1 parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 20 fw classid 10:20
tc filter add dev eth1 parent 10: protocol ip prio 100 handle 30 fw classid 10:30

#========================================================================
#iptables 指令,過濾器 (編輯自定義防火牆規則) :

# uploads
iptables -t mangle -A PREROUTING -s 192.168.10.10 -j MARK --set-mark 20
iptables -t mangle -A PREROUTING -s 192.168.10.11 -j MARK --set-mark 30

# downloads
iptables -t mangle -A POSTROUTING -d 192.168.10.10 -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -d 192.168.10.11 -j MARK --set-mark 30

經網頁測速及FTP來測試上下傳的頻寬, 都不會超過所設定的最大頻寬, QOS應該有逹到限制的功用

不過有時在使用上覺得流量怪怪的, 我幫他裝了nload來看即時的流量, 卻發現上傳的頻寬都被吃掉了
查了一下當時的使用人數, QOS若有作用的話, 頻寬的使用分配還不到一半

請教各位學長, 是不是我這個腳本有問題, 才會造成QOS失靈

為了確定是哪些IP流量使用有問題, 又裝bandwidthD來測所有IP的流量. 結果發現只有幾台電腦流量
有異常, 經詢問都是在下載檔案, 應該是在使用P2P.
還是說現在的P2P程式有辦法穿透QOS的功能而不受管制. 如果是這個問題的話, 那使用L7 filter是否
能解決這個問題.

4
最近在學寫daemon的程式 主要的做法是使用fork來產生一個子程序, 再把父程序結束.
daemon程式要結束的時候再使用kill的方式來把它結束掉. 想請問各位學長的是除了使
用kill的方式來結束以外, 是否可以讓daemon程式自行結束. 因為我使用exit來讓程式
結束, 程式已經停止運作, 可是打ps來看那個程式卻還存在. 不知daemon程式除了使用
kill外要使用什麼方式來讓它自行結束.

5
Linux 討論版 / apache奇怪的log訊息
« 於: 2008-07-09 12:20 »
最近在看apache的log檔時, 發現很多奇怪的訊息

222.216.28.125 - - [08/Jul/2008:23:21:40 +0800] "GET http://mail2.663.com.cn/inc
lude/prxijn.php?p=q1w2e3r4t5y6u7i8o9p0*a-b?hash=E8917C9F420CDB5B3DDFEF801F9019F0
0873DC6A7AF3 HTTP/1.0" 401 472

222.216.28.168 - - [09/Jul/2008:02:50:50 +0800] "GET http://www.shuigong.com/for
um/templates/default/prx.php?p=q1w2e3r4t5y6u7i8o9p0*a-b?hash=E8917C9F420CDB5B3DD
FEF801F9019F00873DC6A7AF3 HTTP/1.0" 401 472

218.164.183.116 - - [09/Jul/2008:01:47:55 +0800] "CONNECT 168.95.4.211:25 HTTP/1.1" 401 484

116.242.165.6 - admin [09/Jul/2008:01:55:48 +0800] "GET /manager/html HTTP/1.1" 401 484
116.242.165.6 - tomcat [09/Jul/2008:01:55:48 +0800] "GET /manager/html HTTP/1.1" 401 484
116.242.165.6 - manager [09/Jul/2008:01:55:49 +0800] "GET /manager/html HTTP/1.1" 401 484

是被攻擊嗎, 不知是哪一種的攻擊方式?
最下面的應該是從 port 8080 進來的, 我有開這個port來做虛擬主機, 有使用登入認證且沒有
這個帳號應該是被擋掉了, 上網查了一下好像是在try tomcat的, 我沒裝這個不是很清楚

6
之前為了要重新取得一個新的IP, 都是用telnet連線到主機去讓pppoe重新連線
後來想說用網頁的方式做一個button來取代這個動作, 所以就寫了一個腳本指令
只有 adsl-stop 跟 adsl-start, 然後讓apache用sudo的方式來執行這個腳本
經過測試是可以達到我要的功能. 不過當我第二次要做這個動作的時候問題就
來了, 當執行到 adsl-stop 的時候會連 apache 也一起關閉.
想請教各位學長不知這是什麼問題, 有何辦法可以解決. 還是說我只能用 telnet
或是到console下去執行重新連線的動作.

7
Linux 討論版 / 有關printer server的問題
« 於: 2006-09-02 14:47 »
剛架好samba來當file server, 使用上沒什麼問題. 後來想說再架個printer server
來共享印表機, 可是一直都試不出來. 使用網路芳鄰可以看的到那台印表機, 可是在列印時
卻送不過去, 使用lpq都看不到要列印的東西. 請各位學長幫我看一下我的設定檔是否有問題
謝謝!!


[global]

   workgroup = SOHO
   netbios name = Linux
   server string = Samba Server
   client code page = 950

   hosts allow = 192.168.10.

   printcap name = /etc/printcap
   load printers = yes
   printing = lprng

   log file = /var/log/samba/%m.log
   max log size = 500

   security = user

   encrypt passwords = yes
   smb passwd file = /etc/samba/smbpasswd

;  username map = /etc/samba/smbusers

   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

   dns proxy = no

;  preserve case = no
;  short preserve case = no
;  default case = lower
;  case sensitive = no
#============================
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   valid users = %S
   create mode = 0664
   directory mode = 0775

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
   guest ok = no
   writable = no
   printable = yes

8
我將CF卡格式成EXT2, 來儲存Linux的檔案資料. 可是有一天突然整個partition都不見了
請問還有辦法將裏面的資料救回嗎? 記得以前dos的時代, partition不見了還可以用norton來救回
不知在Linux底下是否也有同樣的方法.

9
Linux 討論版 / 編譯busybox的問題
« 於: 2006-03-25 11:23 »
之前是使用舊版的busybox, 想說改用新版的來用看看
可是我在 make menuconfig 時候就出現問題了

gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DCURSES_LOC="<ncurses.h>" -I. -c /root/busybox-1.1.0/scripts/config/mconf.c -o mconf.o
In file included from /root/busybox-1.1.0/scripts/config/expr.h:15,
                 from /root/busybox-1.1.0/scripts/config/lkc.h:9,
                 from /root/busybox-1.1.0/scripts/config/mconf.c:29:
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/include/stdbool.h:11: conflicting types for `bool'

/usr/include/ncurses.h:96: previous declaration of `bool'
make[2]: *** [mconf.o] Error 1
make[2]: Leaving directory `/root/busybox-1.1.0/scripts/config'
make[1]: *** [scripts/config/mconf] Error 2
make[1]: Leaving directory `/root/busybox-1.1.0'
make: *** [menuconfig] Error 2

請教各位學長, 不知這是哪邊的問題, 還是說我少安裝了什麼東西

10
Embedded 討論版 / [請教]要如何跨平台編譯
« 於: 2006-02-12 21:59 »
最近開始玩ARM,想說在PC上編譯好程式再傳到ARM上去執行。Cross Compiler
的Toolchain已經裝好,也可以直接用arm-linux-gcc來編譯程式,不過大部分的程式都是
先執行configure再使用make編譯程式,若是要使用Cross Compiler的方式來編譯ARM的
程式不知要如何來做。我試過在configure時加入參數 --target=arm-linux 在make時再指定
CC=arm-linux來做編譯,一開始是有編譯,不過到後來都會出錯。不知要怎樣做才是正確的方式。
拿busybox來說好了,在PC下只要直接make就可以了,若是要Cross Compiler在Makefile裏
我只會把gcc改為arm-linux-gcc,其它的就不知要如何來著手。請各位前輩指導一下新手吧!

11
我想讓一個帳號只可以使用FTP, 而無法收信.  我在/etc/mail/access加入一行
To:userid@hostname    "550 Reject This User Mail"
hostname用的是我自己的domain, 然後使用 makemap 重作 access 產生 access.db
makemap hash /etc/mail/access < /etc/mail/access
之後再重新啟動sendmail, 想說寄到這個帳號的mail應該會被退信. 可是並沒有
被退信還是可以收到信件. 想請教學長不知哪裡還有問題, 要如何修改.

12
我想用PHP來顯示現在主機的domain及主機名稱, 翻了一下PHP的指令表好像也沒看到相關的指令, 不知是否有別的方法可以做到.

13
我把檔案壓成tgz(tar.gz)來備份, 不過後來發現檔案壞掉了, 只能解出前面的1mb的檔案資料, 後面的3mb都不見了. 我試著把它解成tar發現檔案大小是4mb, 再去解tar可是卻只有解出1mb多. 把檔案co到windows下使用winzip來解也是一樣.
不知是否有專門修復tgz檔的程式, 能把其它的資料給救回來, 能救多少算多少.

14
Linux 討論版 / [問題]Sendmail如何拒絕收信
« 於: 2004-09-27 08:56 »
我可以在access內來設定擋信
test.com REJECT
test@test.com REJECT
但我想要一個帳號拒收所有信件, 其它帳號則正常收信
不知要如何設定.

15
我在shell script下要執行一個動作前印出訊息,結束後再印出訊息.可以使用以下方式來做.

echo -n "Start Working..."
[執行動作]
echo "Done."

若將同樣動作改為c來寫, 不知要如何撰寫. 我有試著用以下方式來寫

printf("Start Working 1...");
[執行動作1]
printf("Done.\nStart Working 2...");
[執行動作2]
printf("Done.\n");

不過在執行動作1前卻不會印出訊息1, 而是在執行動作2時才印出訊息1.
不知這是什麼問題, 要如何修改? 我要做的是先印出訊息再執動作, 結束
後在同行的行尾印出 "Done."
對了, 我這邊的執行動作是使用system來執行外部程式.

16
Linux 討論版 / 編譯apache的問題
« 於: 2002-02-22 17:59 »
我是自行編譯apache php及MySQL來使用,用了一段時間都沒發生什麼問題.
不過最近安裝imp來當WEB mail,結果發現在收信時可以看到那一封信,可是卻
無法看到信件內容,只能使用 附件/原始內容 的方式來看它的原始內容.後來
我改用同版本的apache及php的RPM檔來安裝,卻又很正常.所以應該是我編譯
的問題,想請問一下我在編譯時少下了什麼參數.
php:
./configure --with-mysql=/usr/local/mysql
--with-apache=../apache_1.3.6
--with-imap=/usr/local
apache:
./configure --prefix=/usr/local/apache
--activate-module=src/modules/php3/libphp3.a

我用的版本是
apache 1.3.6
php 3.0.14
horde 1.0.10
imp 2.0.11

頁: [1]