Linuxプログラミング 2

2010/02/13(土) 14:53:15ID:lCBgsQHj
Linux(特有)のプログラミングに関する話題です

前スレ
http://pc11.2ch.net/test/read.cgi/linux/1118024349/
2010/09/16(木) 08:17:00ID:ecVcHbkK
>>99
なにそれこわい
>>101
gtkやqtで判りやすいおすすめ日本語サイトあります?
2010/09/16(木) 10:26:27ID:lqzwJaLH
>>102
いやいや、それがFUDってやつだよ
2010/09/16(木) 14:42:06ID:nQxYNYf6
>>102
とりあえず言語は何使いたいの?
CとC++でも回答が変わるような気がするし、
両方ともPython/Perl/Rubyとかでも可能だが。
105login:Penguin
垢版 |
2010/09/26(日) 13:04:58ID:y98Mylbc
KUniqueApplicationって何するの?
106login:Penguin
垢版 |
2010/09/27(月) 10:23:22ID:O/UIWRcV
int
fd_reopen (int desired_fd, char const *file, int flags, mode_t mode)
{
int fd;

close (desired_fd);
fd = open (file, flags, mode);
if (fd == desired_fd || fd < 0)
return fd;
else
{
int fd2 = fcntl (fd, F_DUPFD, desired_fd);
int saved_errno = errno;
close (fd);
errno = saved_errno;
return fd2;
}
}
これのやってる意味がわからん。
なんとかして閉じて同じ番号で開きなおしたいってことか?
2010/09/27(月) 15:02:56ID:9dshcxct
関数名がreopenなんだから、現在のファイルを閉じて、再オープンしてるだけだと思うが。
2010/09/27(月) 15:55:42ID:O/UIWRcV
fdの付け替えか。なるほど。
109login:Penguin
垢版 |
2010/10/29(金) 00:09:46ID:XUIHih2i
プロセスAが開いているソケットディスクリプタを、プロセスBにあげたいんだけど
どうしたらいいかな。
2010/10/29(金) 19:23:33ID:EbYXtX+n
あの人のコンテンツただ乗り集団が画策するLLVMのビッグウェーブ(w が、
やってくるのに、まだGNUとか時代おくれすぎるだろ。
2010/10/29(金) 21:51:14ID:A0ogCoEx
ただ乗りっていうか、アポーとかBSDの人がかなり開発に参加してるじゃん
2010/10/30(土) 07:09:23ID:DfPaw9Am
これからはBSDの時代
2010/10/30(土) 12:12:06ID:e5Rq6fJ9
プロセスAが開いているソケットディスクリプタを、
プロセスBで使いたいんだけど どうしたらいいかな。
2010/10/30(土) 15:22:14ID:ewTReF1L
>>113
ちょっとググっただけで、できそうな話は出てきたぞ
http://oshiete.goo.ne.jp/qa/2752265.html
2010/10/30(土) 17:01:19ID:3xL9Dqyh
リンク先のリンク先が飛べないな。って JM ってもう無いんだ。。
2010/10/30(土) 19:22:50ID:AZa4J62A
>>112
そうだな、Linux終了だな
2010/10/30(土) 22:12:21ID:BsMEYQ6Y
>>115
http://archive.linux.or.jp/JM/html/LDP_man-pages/man2/recv.2.html
ここに引っ越してる

>>116
バーカ
2010/10/31(日) 07:16:47ID:ie4s4zqd
>>113
man unix

...

SCM_RIGHTS
他のプロセスでオープンされたファイルディスクリプタのセットを送受信する。 データ部分にファイルディスクリプタの整数配列が入っている。 渡されたファイルディスクリプタは、あたかも dup(2) で生成されたかのように振る舞う。
2010/11/01(月) 08:29:57ID:2Ytwk1LQ
>>115
引越し先はこっち。
http://linuxjm.sourceforge.jp/
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/recv.2.html
120login:Penguin
垢版 |
2010/11/03(水) 19:03:18ID:LOm9zf2z
MOD_SSLを使ってSSLサーバを構築しようとしています。
最初にmakeしたときは、ndbm.hがないというのでネットで探したら見つかりました。
それをコピーして使ったところコンパイルは通るようになりました。
しかし、起動に失敗してエラーログを見るとmod_auth_dbm.cに未定義の関数
dbm_fetchがないというエラーが出ていました。犯人はもともとapacheに
含まれていないgdbmというソフトの中のndbm.hというヘッダの中にあって、
dbm_fetch関数を定義してあるソースコードもありました。未定義の関数を
コメントアウトするとコンパイルに失敗します。
この実行時エラーをなくすためにはどのようにコンパイルすればいいのでしょうか。
makeの読み方がわからずどのようなオプションをつければいいのかわかりません。
解決方法が解る方がいたら教えてください。
開発環境はSlackware11.0、GCC3.4.6です。
2010/11/03(水) 19:05:03ID:XRh80cSd
GUIのプログラミングって何でやってますか
言語とツールキット
若しくは
言語とライブラリ
を教えてください
2010/11/03(水) 19:09:00ID:NQDNkNv0
さくっと書きたいときはQt Pythonで書いてるかな
2010/11/03(水) 19:57:24ID:XRh80cSd
>>122
QtでC++ってどうですか
GTKはできないらしいので
2010/11/03(水) 20:32:53ID:NQDNkNv0
>>123
Qtは元々C++用に作られたライブラリだからC++で書いても問題ないよ
Pythonで書いても別にPython for Qt独自のの恩恵が得られることはない
2010/11/04(木) 07:07:09ID:tZlg3f78
>>124
ありがとうございます
参考になりました
安心してDLしたいと思います
126login:Penguin
垢版 |
2010/11/22(月) 21:49:50ID:KTz7/IMD
>>120

> gdbmというソフトの中のndbm.hというヘッダの中にあって、

ヘッダだけ取り出してコピーしてはいけません。
gdbmというソフトをインストールしてください。

※ gdbmを正規の手続きで導入し、有効化していればdbm_*が使えるようになっているでしょうから『dbm_fetchがないというエラーが出ていました』とはならないはずです。


もしくは、mod_sslをmakeする前にconfigureしているかと思いますが、その時にndbmと違うデータベースを使う様構成してください。


そんな所でつまずく様なら、バイナリパッケージ使った方が良いかも知れません。
2010/11/25(木) 02:17:13ID:yt4Mk06Z
TCPやUDP通信で、recvやrecvfrom実行前に、対象ソケットに今受信しているデータ数を取得するにはどのようにすればいいんでしょうか?
2010/11/25(木) 18:42:48ID:RzV8m0BF
>>127
getsockoptで調べる
129127
垢版 |
2010/11/26(金) 09:39:02ID:BmBjOZDb
>>128
getsockoptを検索してみました。
受信バッファサイズはSO_RCVBUFで取得できるようですが、今受信しているデータ数を取得するにはどんなオプション指定をすればいいのでしょうか?
2010/11/26(金) 15:11:03ID:hZHeZGDQ
>>129
man 7 tcp
131127
垢版 |
2010/11/26(金) 15:56:41ID:BmBjOZDb
>>130
なるほど!
ありがとうございました。
2010/12/04(土) 18:34:14ID:lrbZ4Vw/
最近、ようやくファイルディスクプリタの概念を理解することができたので、
ファイルディスクプリタを使ってテスト&遊びをしてみたいと思う。
面白そうな関数ありませんか?
2010/12/04(土) 18:50:02ID:UtwhdPeF
>>132
open関数おすすめ
オプションの全組み合わせを順番に試してみろ
134132
垢版 |
2010/12/04(土) 19:08:28ID:lrbZ4Vw/
>>133
ありがとうございます
試してみます
2010/12/04(土) 20:43:32ID:NsFipHC9
ソケットでFDが送れるとかおもしろいよね。
136login:Penguin
垢版 |
2010/12/07(火) 15:46:55ID:MEj833l6
flock(2)でタイムアウトさせたいんだけどどうしたらいいかね?
2010/12/07(火) 17:00:15ID:FDUVL6Om
SIGALRM

もちっとお手軽な方法がほしいのうとか思う。
2010/12/07(火) 21:48:25ID:pQrU+RrE
flockって、だいたいロックした順に並んでるの?
139login:Penguin
垢版 |
2011/06/17(金) 00:47:05.65ID:Z0wgUHnW
Windowsでは、テキストエディタで開いてるものを他のテキストエディタで開こうとすると
「ファイルがロックされています」
のような感じで編集させないことができますが、Linuxではこれができませんか?
2011/06/17(金) 00:59:58.01ID:creDCjXk
flockでLOCK_EX
2011/06/17(金) 01:31:32.35ID:Z0wgUHnW
>>140
それでは実現できませんでした。
2011/06/17(金) 01:46:27.65ID:otf7FX+H
>>141
マジかよ。それ大ニュースだから。世界中で大問題になる。
2011/06/17(金) 10:50:29.74ID:FnT9BICC
>>141
本当なら全世界の6割のサーバで障害が発生するぞ!
今すぐ再現手順を明かすんだ!
2011/06/17(金) 11:43:54.98ID:HFvfY6fg
>>139
こういう話?
p://linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.6/filesystems/mandatory-locking.txt.html
2011/07/02(土) 15:04:22.72ID:qRtAuIzI
共有メモリのアクセス高速化する方法教えて
2011/07/02(土) 17:49:21.80ID:lKRns3Nn
>>145
排他しない
2011/07/13(水) 13:18:16.11ID:0nLCWyoY
linuxプログラミング=シェルスクリプト
って理解でOK?
2011/07/13(水) 13:30:20.30ID:fUIVhB5h
コマンドとコマンドを繋げる事から始まって段階を追っていつのまにか本格的な
プログラミングにまでリニアに勉強している自分に気づけるのがlinux
149login:Penguin
垢版 |
2011/07/27(水) 18:43:29.30ID:2cBNDfA/
linuxでWindowに動画投影する一般的な方法って何?
できればWidget tool kitレベルのもんじゃなくて、
WindowsでいうDirect Showレベルの低水準なヤツ教えて。
2011/07/28(木) 09:29:37.35ID:PfRiPPwR
mplayerあたりのソースを読めばいい気がする。
何にも無いところから再生できるから
2011/07/28(木) 18:44:59.70ID:ZtDQHquS
やっぱそれしかないか。
152login:Penguin
垢版 |
2011/09/05(月) 15:17:20.05ID:wCVIfVjj
デフォルトで無視されるシグナル
ってSIGCHLDとSIGWINCHしか無いの?
もっとほかにないの?
2011/09/05(月) 15:59:57.15ID:A7RZGaLP
>>152
man 7 signal
2011/09/05(月) 17:17:48.47ID:wCVIfVjj
>>153
それ見てたんだけどな
2011/09/23(金) 17:04:42.58ID:uuFe0YYV
Pixmapを複数のウィンドウで使うことってできる?
2011/09/23(金) 17:08:52.49ID:ENYkylEH
出来るよ。
Screenをまたぐことはできないよ。
2011/09/24(土) 03:36:44.57ID:Co89th42
出来た
ありがとう
2011/10/18(火) 20:00:18.43ID:uvgVvQyC
ロックファイルってどこに作るのが一番ロックですか?
2011/10/18(火) 21:21:28.51ID:OHdmrte5
/var/lock
2011/10/25(火) 11:01:32.55ID:25FYUMJ1
実験用に、一時的にライブラリパスを 追加 するには
どうしたらいいんだっけか
2011/10/25(火) 11:25:34.15ID:DCrXo93V
LD_LIBRARY_PATHのことか?
162login:Penguin
垢版 |
2011/10/25(火) 13:28:23.97ID:Bj97jHCH
Phalanger - The PHP Language Compiler for the .NET Framework
http://ja.wikipedia.org/wiki/Phalanger
2011/10/27(木) 17:30:04.83ID:Aw8oREGN
FireFoxなどのブラウザ上から、ユーザーのローカルのスクリプトなどを実行して
ブラウザに返すような処理はできますか?
Windowsであれば、ActiveXを使ってスクリプト実行できるのですが。(もちろんユーザー側でActiveX実行の許可が必要です)
2011/11/06(日) 13:54:11.13ID:uZqdiifw
>>158
/国技館
2011/11/09(水) 15:09:24.08ID:pNvNP0jP
CGIはだめなの?
2011/11/09(水) 18:16:33.69ID:7wWX+jtc
>>165
cgi以外がだめ
2011/11/13(日) 17:40:20.06ID:xahByUHQ
日本語のランゲージファイルをつくろうと思うのですが、これは手作業でテキストエディタ使ってやるもの?
数百とかあるとかなり面倒くさいんだけど。

なんかツール的なものない?
2011/11/13(日) 18:35:51.10ID:APgqfHK5
>>167
poファイルの事?
Emacsならpoファイルの編集モードで楽だけど。
2011/11/13(日) 19:01:42.31ID:crIJtm45
>>167
gtranslatorはどうかな。
2012/02/12(日) 23:33:46.91ID:vrKTadjR
http://toro.2ch.net/test/read.cgi/tech/1329023778/
2012/02/24(金) 20:03:26.72ID:rI7gSkqO
exec*系の関数で二次元配列を引数として渡す方法ってありますかね
縦の要素数は場合によって可変なんですけど
2012/02/24(金) 22:03:42.43ID:ouGJwp5V
>>171
むりだろ
基本的に引数で渡せるもんじゃないと
2012/02/24(金) 22:12:09.35ID:TsEE2yLU
引数のバイト数に上限があったような希ガス
2012/02/24(金) 22:43:01.81ID:rI7gSkqO
回答ありがたいです

char str[2][10];     /*str[0] = "-option" str[1] = "dirname" */
char path[] = "/bin/ls";

exechoge(path, str);

みたいな感じで使いたかったんです
他に方法を考えてみます
2012/02/24(金) 23:58:08.48ID:haxmm7fT
>>174
それを2次元配列と言うか…そうだけどさ。あとexechogeはどう宣言する気?
ポインタにしたら長さが分からないし、そうでないなら要素数が変えられない
2012/02/25(土) 00:10:10.32ID:N8ck9GNr
番兵でも入れるでそ
177174
垢版 |
2012/02/25(土) 00:12:12.64ID:4aVapzR1
>>175
exec系のやつって結構種類があるので、それのどれかを使えればいいと思った次第です
うーん 難しい
2012/02/25(土) 00:54:23.44ID:R65aOaFI
シリアライズしてbase64でエンコードしてしまえ
二次元と言わずどんなに複雑な形式でも渡せる

両方自分で作るなら、適当にプロセス間通信してバイナリ
そのまま流し込んだほうが簡単じゃないかと思うが
2012/02/25(土) 11:22:27.40ID:DrSUXVnw
>>178
いやそれは負けだろう。
2012/02/25(土) 13:25:03.24ID:FJpfCqek
単にパイプを用意してプロセス間通信すればいいだけだったりして。
int fd[2];
pipe( fd );
if (fork()==0 )
{
close(fd[0] );
for (;;) { read(fd[1]) ...}
}
close(fd[1]);
for(;;) { write(fd[0])...}
って感じ
2012/02/25(土) 13:35:12.09ID:FJpfCqek
>>174
これは普通の使い方だよ
char str[3]={"-option","dirname",NULL};
execv( "/usr/bin/echo",str );
って感じで使えばstrの文字列が子プロセスのメモリーにコピーされて
子プロセス側からはmain(ac,av)でav[0]とav[1]で読み出せる。
2012/02/25(土) 13:36:35.19ID:FJpfCqek
char str[3]
でなくて
char *str[3]
が正しい
183174
垢版 |
2012/02/25(土) 14:06:47.63ID:4aVapzR1
>>181,182
解りやすいアドバイスありがとうございます
参考にしてできました!
2012/02/29(水) 18:02:13.67ID:YCT92ZdK
javascriptってみなさん何を使って書かれています?
emacs+js2-mode? それとも何かの開発環境でしょうか?
185login:Penguin
垢版 |
2012/03/01(木) 00:10:16.20ID:p+fzgaQ9
vim
2012/03/01(木) 02:09:39.75ID:zcg896mH
javascript習得する時間より、vim習得する時間の方が長く掛かりそうな件
2012/03/01(木) 08:18:21.75ID:+wd5qPdB
gedit
188184
垢版 |
2012/03/01(木) 15:09:49.99ID:AKrl+MAh
どもです。
vimとgeditですか。
javascriptでemacsはあまり人気ないのかな?
eclipse等も挙がるかなとも思いましたが、
まずはその二つのエディタでのjavascript関連を調べてみることにします。
2012/03/01(木) 18:56:36.08ID:aaOc7Y4R
そもそもプログラミングでemacsというのが・・・ねぇ・・・
2012/03/01(木) 19:24:04.38ID:CWbiDrNB
Geanyという選択肢
2012/03/01(木) 19:25:36.29ID:bqdXtBdB
emacsは環境。 /etc/shell に /usr/bin/emacs が入っているのは当然だ
2012/03/01(木) 21:55:20.56ID:5YvjXZTc
エディタなんてどれでもたいして変わらんて。
目的で選ぶより自分の手に馴染んだものがいいと思うよ。
2012/03/01(木) 23:37:50.99ID:MEHFRDpm
普通は端末で使えるエディタを選ぶだろ。
2012/03/02(金) 00:13:05.82ID:gL7JPOIk
そうするとやっぱり MIFES for Linux 一択なのか。
2012/03/02(金) 18:08:42.96ID:kSorCMmC
>>194
Xが起動していないフレームバッファで動けば、MIFES foe Linuxを
購入するんだけどね。
196login:Penguin
垢版 |
2012/03/02(金) 19:05:04.89ID:kSorCMmC
http://www.cnn.co.jp/tech/30005772.html
http://downloads.element14.com/raspberryPi1.html
http://www.raspberrypi.org/

Linuxはこれで確定。
197login:Penguin
垢版 |
2012/03/02(金) 19:50:43.86ID:jO+ccMa6
英国向けじゃないのか?
国内メーカーは何をしている?
2012/03/02(金) 19:52:36.31ID:Wcs5HBU/
日本企業だと、R4000で似たようなモンをつくって、20万ぐらいで売っとったなあ・・・。
2012/03/03(土) 16:10:00.27ID:6F922IxX
>>197
ヒント。日本でそれを売れば+5000円ぐらいの手数料がつく。
2012/03/03(土) 19:12:03.10ID:8YWnKGd6
>>196
楽天で売ってないだろ。
というかそもそも大人用は売ってないだろ。
201おちんちんびろーん
垢版 |
2012/03/06(火) 14:31:19.56ID:xpdMuQir
ある期間の経過時間を測定する方法を教えてください。

dateコマンドなどで測定中にシステム時計を変更されても
そこそこの精度(約10ミリ秒)を保てる方法を探してます。
レスを投稿する