UNIXプログラミング質問すれ Part10

■ このスレッドは過去ログ倉庫に格納されています
2011/04/18(月) 17:06:36.77
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 

前スレ 
Part9 http://hibari.2ch.net/test/read.cgi/tech/1205795434/
Part8 http://pc11.2ch.net/test/read.cgi/tech/1147946176/ ;
Part7 http://pc8.2ch.net/test/read.cgi/tech/1127373405/ ;
Part6 http://pc8.2ch.net/test/read.cgi/tech/1116908090/ ;
Part5 http://pc8.2ch.net/test/read.cgi/tech/1105723117/ ;
Part4 http://pc5.2ch.net/test/read.cgi/tech/1095843584/ ;
Part3 http://pc5.2ch.net/test/read.cgi/tech/1085930894/ ;
Part2 http://pc5.2ch.net/test/read.cgi/tech/1055110889/ ;
Part1 http://pc2.2ch.net/tech/kako/992/992057422.html ;


Part3のミラー 
http://makimo.to/2ch/pc5_tech/1085/1085930894.html ;
Part2のミラー 
http://makimo.to/2ch/pc5_tech/1055/1055110889.html ;
2011/09/28(水) 12:02:22.35
>>133
いまどきUnix系でプログラムしてる人は少数派だろ
2011/09/28(水) 12:11:37.58
それをこのスレで言うかwww
2011/09/28(水) 15:43:47.23
飛んで火に入る夏の虫

もう秋だぞ>>134
2011/09/29(木) 11:43:22.93
AndroidやiOSはUNIX系かね?
古典的なAT&T由来のC APIではないけれど。
2011/09/29(木) 12:00:16.75
全ての作業をWindows上でおこなうのは少数派かな
2011/09/29(木) 18:32:55.72
iOSはしらんけどAndroidはnix系だな
14067
垢版 |
2011/10/04(火) 15:07:33.28
今日行ったら200円になってたから思い切って買った
14167
垢版 |
2011/10/08(土) 01:51:21.45
ちなみに書籍タイトル正確なのは Xアプリケーションプログラミング1 xlib編 92年発行の東工大の教授の本だ
19年も前の本だけど19年前から顔文字ってすでにあったのな
19年前って俺まだ小学校低学年だったからパソコンとかよく知らんかったけど
X11R5が出たばっかのころのらしい、今のに使えんのかな
2011/10/08(土) 06:03:00.48
>>141
これ? http://www.amazon.co.jp/dp/4883170225/ なつかしい。

自分は当時大学生で、大学で何百万もするUNIXワークステーションを使って
サンプルとか打ち込んでたなあ。今なら安PC+Linuxでより快適にできる。
LAN経由で近くで作業している奴のディスプレイにイタズラの画面を出したり...

一般家庭はともかく大学にはインターネットの電子メールとかネットニュースとかが
既にあったし、顔文字とかAAも使われていた。www(草じゃないよ)が出てきた前後だな。
大学のマシンにサーバー立ち上げたっけ。エロのw 今ならマスコミ沙汰になって
退学処分か?

Xのプログラミングから離れて久しいのでアレだが、Xlibはあんまり変わってないんじゃ?
すなわち今でも使えるのでは。あえて今から低レベルなものを使ってプログラムを
書きたいのであれば...
2011/10/08(土) 06:54:30.22
dwm, xmonadといったタイル型ウインドウマネージャや
dmenu, dzenなどのシンプルなランチャの流行もあって
今でもXLibプログラミングは熱いですお
2011/10/08(土) 08:18:56.56
>>143
そうなんだー。
今dwmのソースをダウンロードしてみたらソースファイルが一つだけ...
こんなんでいいんだ。

サーバはXを使うとして、ウインドマネージャを自作するなんてのも面白そうだね。
ウィジェットとか言い始めると敷居が高いと思われるので...
145デフォルトの名無しさん
垢版 |
2011/10/08(土) 08:35:55.73
age
2011/10/09(日) 01:44:52.52
この質問ここでいいのか分からないんだけど
↓のサイトのやりかたで、つまりcatコマンドからMakefileを作ろうとしたんだけど
gccの前のTABが入力できなくってcshでやってたんだけどTABが入力できないのってシェルの問題?
TAB入力できなくって変わりにスペース入れたらmakeがエラー出てググったらスペースじゃダメとか知らなかったよ

flags for compiling Xlib.h in gcc
http://www.linuxquestions.org/questions/programming-9/flags-for-compiling-xlib-h-in-gcc-333230/
2011/10/09(日) 01:59:23.56
シェルスクリプト総合 その18
http://hibari.2ch.net/test/read.cgi/unix/1308195527/
2011/10/09(日) 04:09:22.56
そのスレにcsh使いを誘導しないで欲しい
cshのmanのヒアドキュメントを読む。echoで書く。cshを捨てる(推奨)
2011/10/09(日) 04:15:21.44
インタラクティブに使ってるなら
$ cat >Makefile
中身入力、改行
Ctrl+D
2011/10/15(土) 00:10:57.09
Rob Pike曰く、Dennis Ritchieが亡くなったと。
https://plus.google.com/u/0/101960720994009339267/posts/ENuEDDYfvKP?hl=en

南無
2011/10/15(土) 01:23:11.92
お悔やみ申し上げます
2011/10/15(土) 18:28:21.23
          _____
  .ni 7    /        \  ご冥福をお祈りします
l^l | | l ,/) / /・\  /・\ \    .n
', U ! レ' / |    ̄ ̄    ̄ ̄  |  l^l.| | /)
/    〈  |    (_人_)    |  | U レ'//)
     ヽっ     \   |    /   ノ    /
 /´ ̄ ̄ ノ     \_|    \rニ    |
                      `ヽ   l
2011/10/15(土) 20:21:34.20
2011/10/15(土) 20:29:40.38
まちごた
まいいや
155デフォルトの名無しさん
垢版 |
2011/10/18(火) 17:07:46.91
>>70
ライセンスの問題とか絡むからじゃね?
無料で公開すべきものを本を買うとか金銭発生するし
2011/10/19(水) 08:32:31.05
>>70
「unix向けアプリ」というのはたとえばGTK+とかでアプリを作るという事でいい?
いくつか本が出てたと思うけど。実際に本屋にないという意味?
2011/10/19(水) 09:12:36.56
隣のおっさんうるさい
2011/10/19(水) 12:42:25.99
じゃあ転職しろ
2011/10/21(金) 13:03:48.22
>>156
普通はコマンドライン版を指すよ
2011/10/21(金) 19:53:17.14
そんなこたーない。
2011/10/21(金) 22:24:13.25
「コマンドラインアプリ」ってあんまり聞かないな
2011/10/22(土) 02:07:40.32
cursesを使ったようなやつ?
2011/10/22(土) 02:44:59.58
単にコマンドって言うもんね。
2011/10/22(土) 03:01:48.61
Xアプリケーションプログラミング1 xlib編で書かれていたアプリケーションとは
不特定多数のユーザに使われることを前提として作られた,"汎用的で便利なプログラムのことをアプリケーションと呼ぶ" (引用 p.27 l.17~18)
だそうで
X用のプログラムは必然的にアプリケーションと呼ばれるだけの性質を持つそうです

2011/10/22(土) 11:25:36.43
Ach, so.
2011/10/22(土) 12:29:12.68
http://www.amazon.co.jp/dp/4883170225
これか? 20年も前の歴史的価値品ない骨董本引用して何が言いたいんだ? ジジイ。
2011/10/22(土) 16:16:40.17
>>166
流れからすると>>67の発言みたいで、ジジイじゃないっぽいけどw

自分はたぶんジジイだがw X11のプログラミングの本で、これみたいに比較的
気楽なノリで始められる本はあまりなかったように記憶しているのだが。
何かいい本をご存知ですか?

そもそもXlibを使うこと自体が骨董に属するんだったりしてw
何か違うもの、たとえばOpenGLとかでやった方がいいのかな?
2011/10/22(土) 16:49:58.99
大昔でもアプリ向けにはathenaとかmotifとか使ってたんでは。
あとOpenGLと比べるのもなにかおかしい気が。
2011/10/22(土) 18:18:16.62
>>166の2巻目はAthenaウィジェット編だからな
当時もXlibでアプリ作るとか無いだろ
2011/10/22(土) 19:08:53.18
>>168
今はXlibの話をしてるつもりなんで逆にAthenaとか言い出す方がちょっと違う。

あ、イベント処理とかもいるからGLUTもか。

>>169
Xlibだけで自分でボタンやメニューを作ったりしたのはいい思い出w
2011/10/22(土) 19:27:58.00
ああそうなの、アプリの話かと思ったわ。すまんね。
2011/10/23(日) 00:20:01.27
67は今やオールドテクノロジー化したXlib本を買って何がしたいのやら
2011/10/23(日) 00:25:28.54
オールドテクノロジーってわけじゃないけども。
今時のGTKアプリだって下位層で使ってるんだから。
「低レベル」ってのが適切な形容詞だと思う。
2011/10/23(日) 00:28:26.89
時代はXlibからXCBだと聞いた
2011/10/23(日) 13:13:19.54
>>67
X11
http://xjman.dsl.gr.jp/X11R6/X11/
2011/10/23(日) 13:15:02.36
>>67
Xlib Programming Lectures
http://homepage3.nifty.com/rio_i/lab/xlib/
2011/11/05(土) 15:09:51.61
EmacsやらNetbeansやらをいじっていて気付いたのですが,
大昔(EclipseもNetbeansもなかった頃)のGNUとかオープンソース界隈のエロい人たちが使っていた
IDE(統合開発環境)ってどうなってたんでしょうか?

IDEなんか使ってなくて,CUIに仮想デスクトップ+vi/Emacs+gcc/gdbとか普通にありそうですが…
2011/11/05(土) 15:55:37.08
いまはemacsにもIDEが乗っかってる時代だからな
2011/11/05(土) 16:11:48.60
フルカスタマイズしたEmacsがIDE相当だな
結構色んなこと出来るよあれ、環境作るのは面倒いけど
2011/11/06(日) 06:57:42.24
仮想デスクトップがscreenか
2011/11/06(日) 10:49:33.98
・エディタの無い時代
ソースは紙に下書き、パンチカードに清書して入力するよ!
出来上がったソースは印刷してチェックだ!
ジジイ達が処理の切れ目に書く馬鹿デカいコメントはこの時代の名残りだよ!
だって印刷物は関数のところへジャンプも、そもそも検索も出来ないからな!

・ラインエディタ時代(edなど)
環境によっては標準出力はプリンタかも知れないよ!
でも入力してるその場でソース見たり、エディタによっては検索も出来るよ!便利!

・スクリーンエディタ登場(viなど)
なんと行の途中の文字だけ編集したり出来るよ!
これで長い行もサクサク編集出来るね!
ディスプレイもみんなの分あるから、超便利になったよ!
2011/11/06(日) 13:20:47.68
>>181
プログラム書いた紙(コーディングシート)はパンチャーのおばちゃんにパンチしてもらうんだぜ。
その後の修正は自分でパンチするけどね。
2011/11/06(日) 14:15:14.94
前の職場にリアルでリアルでパンチャーやってた頃があるって言ってたパートのおばちゃんが居たな…
2011/11/06(日) 16:05:23.93
emacsが無かった時はvi使ってたよ
いまでも普通にvi使う
echo>>
だけで済ませることもしばしば
185177
垢版 |
2011/11/06(日) 18:53:49.18
このスレのエロい人thx!

複数の言語で何か処理してファイルで読み書きするというレベルに達したので,次のレベルに進みたくて調べたけど
大体予想通りということがわかりました.

昔と違って分野が複数ある(並列化一つとってもマルチスレッド,マルチコア,マルチプロセッサにGPU)ので
進む方向性を選ぶのが難しい.
2011/11/06(日) 19:36:36.25
>>185
ハードとソフトが混ざってんぞ
マルチスレッド、分散処理、GPGPUな
あ、あとSIMDかSSE命令などのデータ並列命令な
2011/11/06(日) 22:26:54.73
>>185
>昔と違って
本質的にはそんなに違わんw

>進む方向性を選ぶのが難しい.
何かをどうしても高速に計算したいとかあるわけじゃなく、お勉強でやってるだけなら
かたっぱしからやっとけばw
2011/11/06(日) 23:08:12.64
馬鹿には無理
189177
垢版 |
2011/11/07(月) 00:36:34.52
情報系の院生として研究に従事していますが,自分の立ち位置は「他学問から対象問題を収集,複数の手法を組み合わせて解く」こと.
問題に対する解法の有効性を検証するのが仕事なので,シンプルに組んでそこそこ新しい計算端末で4日ほど計算させる.
有効性が検証されたら,複数の小問題として分割して学部生の卒論として展開されます.
なのでGPGPUやMap-Reduceなどの先進的な手法を自分で扱いたいのですが,そこまで時間を確保できない.

>>186
すみません,利用する選択肢で書いてしまいました.
ただGPGPUなどもそうですが,自然科学分野の対象問題を性能を引き出すように構築するのって
すごく難しい(この変数が何バイトで…と考えなければならないので)

>>187
昔といってもベーマガ全盛期のあたりを指しています.
教科書を元に脇目もふらず,ロジックを検討できるのはいいなぁと思います.
今ではWebアプリ(phpからJSP,RoRなど)やクラウドも登場して選択肢と夢ばかりがひろがりんぐです.

>>188
そのとーりだと思います

2011/11/07(月) 02:56:08.65
コンパイルが通らなくて困っています。
OS BSD/OS 4.3
コンパイルしたいもの libfetch
コンパイラgcc 2.95.3
cc -O2 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized
-Wreturn-type -Wcast-qual -Wpointer-arith -Wwrite-strings
-Wswitch -Wshadow -Werror -D_LARGEFILE_SOURCE
-D_LARGE_FILES -D_FILE_OFFSET_BITS=64
-DDEF_UMASK=0022 -I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libarchive/libarchive
-I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libfetch
-DHAVE_NBCOMPAT_H=1
-I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libnbcompat
-I. -D_LARGEFILE_SOURCE -D_LARGE_FILES -DFTP_COMBINE_CWDS -c common.c
cc1: warnings being treated as errors
common.c: In function `fetch_write':
common.c:639: warning: function declaration isn't a prototype
というエラーでコンパイルが通りません
common.cのソースは
#ifndef MSG_NOSIGNAL
#include <signal.h>
#endif


2011/11/07(月) 02:56:51.16
ssize_t
fetch_write(conn_t *conn, const void *buf, size_t len)
{
struct timeval now, timeout, waittv;
fd_set writefds;
ssize_t wlen, total;
int r;
#ifndef MSG_NOSIGNAL
static int killed_sigpipe;
#endif

#ifndef MSG_NOSIGNAL
if (!killed_sigpipe) {
signal(SIGPIPE, SIG_IGN);
killed_sigpipe = 1;
}
#endif
639行目はsignal(SIGPIPE, SIG_IGN);になります。
man signalをした所
void *signal(sig,func());
void (*func)(sig)
と書いてありました。
<sys/signal.l>ヘッダファイルは
__BEGIN_DECLS
void (*signal __P((int, void (*) __P((int))))) __P((int));
__END_DECLS
#endif /* !_SYS_SIGNAL_H_ */
と書いてありました。
もちろんヘッダファイルにSIGPIPEとSIG_IGNは定義してあります。
これはOS側のsignalが古すぎてコンパイルできないのでしょうか?
なんとか良い方法は無いでしょうか?
2011/11/07(月) 04:36:48.82
>>191
>OS BSD/OS 4.3

えらく懐かしいものをお使いで。特に自分で解決できる技量がない場合には、
より新しくて沢山の人が使っている環境を使った方が楽だよw で、

安直な方法: -Werror なしでコンパイルする

もう少しちゃんとした方法:
1) 本当に signal(SIGPIPE, SIG_IGN); の箇所か確認(試しにここをコメントアウトしてみる等)
2) 関数やその引数に最終的にどういう宣言が使われているか確認。プリプロセッサ処理
後のファイルをチェックしてみるとか。
(3) (2)の原因を理解して修正。インクルードやマクロ定義を修正したりとか。

>void *signal(sig,func());

manにこう書いてあるのはググってもそうひっかからないんだけど
http://mail-index.netbsd.org/netbsd-bugs/1996/03/24/0001.html
というのがあるので、あるリリースのBSDにはそういうmanが付いてきたのかもね。
2011/11/08(火) 01:55:19.23
>>192
すいません。
ありがとうございます。
1)はコメントした所、コンパイルとおりました。
2)はすいません。gccとpkgsrcに不慣れなため、まだ試していません
3)はビンゴだと思います。
たぶんBSD/OS 4.0のmanをインターネットで見つけたのですが、
http://www.eecs.harvard.edu/syrah/vino/release-0.40/man/programref/libc/signals/signal.3.txt
void(*signal(int sig, void (*func)());)()
と正しいようです。
ヘッダファイルを修正してやってみます。
2011/11/22(火) 02:33:19.77
リチャードスティーブンスの本でわからない点があるので質問します

unixネットワークプログラミングでifreq構造体ifr_dstaddrの説明でp-to-pリンクの反対側とありますが

どういうことでどういう値が入るのでしょうか
2011/11/22(火) 09:03:54.79
ifconfigでPPPなどのpoint-to-pointなインターフェースを作ると、
対向側のIPアドレスが入る。
2011/12/07(水) 19:19:33.28
Xclockとか一見シンプルそうなアプリでさえ
ソースコード見るとすんげえ量で萎える

人のコード見て勉強とかちょっと疲れてきた
2011/12/07(水) 20:19:34.24
Win32API ほどじゃない
2011/12/07(水) 21:35:07.67
>>196
http://www.pygtk.org
http://live.gnome.org/Seed
GUIアプリならこういうので書けば? あるいはせめて、
http://www.gtk.org
2011/12/07(水) 22:21:43.40
wxPython オヌヌメ
2012/01/20(金) 17:00:54.36
xmessageって便利やな 
201デフォルトの名無しさん
垢版 |
2012/01/20(金) 19:51:48.27
今ubuntuのGCCコンパイラが4.5.2 が入っているんですが、
そのGCCコンパイラを4.4.5にダウングレードしたいのですが、どうすればいいですか?

2012/01/20(金) 20:11:06.84
パッケージのダウングレードなら犬板のUbuntuスレ、ソースからコンパイルならGCCスレで聞く方が良さ気
2012/01/20(金) 20:14:03.88
>>202
ヒントサンクス
そこで聞いてみるノシ
2012/01/21(土) 13:52:42.46
【プログラミング部】 PHPが100倍速で動くようになったぞー
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
2012/01/25(水) 02:16:44.58
LinuxとかBSD系ってUNIXじゃなかったのな
昨日初めて知った
ってことはLinux系の質問はここじゃスレチになるのか
2012/01/25(水) 04:27:28.79
1によるとUNIX cloneも含んでいるからおkよ
2012/01/25(水) 15:13:45.95
つうか清く正しいAT&Tの血統はまだ残っとるのか?
2012/01/26(木) 04:58:13.71
LinuxはUNIXじゃないがBSDはUNIXで良いと思ってた
2012/01/26(木) 10:04:56.87
BSDはUNIXの血を浄化しました。
2012/01/26(木) 14:15:55.41
BSDはトレードマークである「UNIX」は名乗れないです。
opengroupの認証通ってないので。
2012/01/26(木) 14:37:35.26
敢えてソースから何から全部書き直して
ライセンス汚染してないことにしてる?
2012/01/26(木) 14:47:49.48
短いからとりあえずこれでも読めば
http://ja.wikipedia.org/wiki/BSD
2012/01/26(木) 15:34:29.19
Single UNIX Specification - Wikipedia
http://ja.wikipedia.org/wiki/Single_UNIX_Specification

これにLinuxもBSD系もどうたらこうたらって読んだ
2012/01/27(金) 03:47:31.46
まだ初心者で申し訳ないのですが、
Ubuntu上でC++言語(g++)でマウス操作をやりたいと思い、
XAutomationのxteのソースを見て真似てみました。元はC言語でかかれています。

#include <X11/Xlib.h>
#include <X11/extentions/XTest.h>

としていて、そのヘッダではifdefでC++の場合は extern "C" が付きます。
なので自分の.cppでは特別なことをせずにXTestFakeMotionEvent(..)が呼べるはずなのですが、
リンカが"undefined reference to XTestFakeMotionEvent"とエラーを出します。
どうすればよいでしょうか?
2012/01/27(金) 04:16:59.41
-iXtst してる? gccのコマンドライン晒したほうがいいよ
できれば最小限のソースも
2012/01/27(金) 05:41:13.84
あれ、l って打ったつもりが i になってる。ごめん
-lXtst の誤り。詳しくは man xtestqueryextension で
2012/01/28(土) 01:10:43.39
Macの質問もここでおkなの?
2012/01/28(土) 02:58:00.76
Mac固有にならなければ
2012/01/28(土) 03:22:15.70
マックってユニックスだったんか
知らなかったわ
2012/01/28(土) 20:27:34.75
ということはiPhoneの質問もここでおkかな?
2012/01/28(土) 20:33:41.08
iOSはUnix系だとあるけど
iPhoneでUnix的な使い方ってできたんだっけ?
2012/01/28(土) 22:49:16.13
mmapとか動くよ
2012/01/29(日) 10:19:19.06
>>221
「使い方」によるが、
カーネルとAPIの一部がBSDとコードベース同じだから。
224デフォルトの名無しさん
垢版 |
2012/02/07(火) 20:55:21.88
おねがいします


プロセス間通信で使う、名前付きFIFOをPスレッド間で使うことは可能でしょうか?
それともなにか問題が発生するでしょうか?

また、名前付きFIFOの名前を既存ファイルとかぶらないように自動生成する方法はありますか?
225デフォルトの名無しさん
垢版 |
2012/02/07(火) 21:16:13.63
vimrcとかbashrcとかscreenrcのrcって何の略なんですか?
2012/02/07(火) 21:25:42.05
run commandの略だという説が有力
2012/02/07(火) 21:35:56.81
UNIXの部屋 コマンド検索:rc (*BSD/Linux)
http://x68000.q-e-d.net/~68user/unix/pickup?rc
2012/02/07(火) 23:49:16.68
>>224
プロセス間で使えてスレッド間で使えなくなる理由が分からない
その内容だとpipeで十分に思える。というより、そういうライブラリ使ったほうがオーバーヘッドがないような
一時ファイルはmktempで作ると他と衝突しない
2012/02/08(水) 02:35:32.10
× mktemp
○ mkstemp
じゃなかったかな。

>>224
SIGPIPEのハンドリングが難しいのかな。
よくわかってないけどw
2012/02/08(水) 02:56:19.60
mkstempって普通ファイル以外作れたか?
231デフォルトの名無しさん
垢版 |
2012/02/08(水) 07:55:45.41
>>226,227
ありがとうございました
2012/02/08(水) 20:32:47.58
>>228
>>229
>>230

用語を間違えていました。
名前付きFIFOではなく、名前付きパイプ(=FIFO)でしたね。失礼しました。


スレッド間だともしかして排他処理がうまくできないのではと思ったもので。
スレッド間で使うなら確かに匿名パイプのほうが適切ですね。

mktemp()のセキュア版であるmkstemp()は、ファイル自体を作ってしまうのですが、
普通のファイルをパイプ化できるのであれば問題ないのですが、
どうもそのようなことをしてくれるシステムコールは存在しないようで・・・

tmpnam()で名前だけ作ってmkfifo()でFIFOを生成してもいいのですが、
tmpnam()のせいでコンパイル時に恐ろしげな警告が出るのが気持ち悪くて・・・


・・・困りました
2012/02/08(水) 23:27:28.46
スレッド間ならファイルディスクリプタは共有しているので、名前付きである必要な理由は無いな。
あえてnamed pipeを選択する理由は?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況