【POSIX】UNIXプログラミング【BSD】 [転載禁止]©2ch.net
char s[4096];
puts(getwd(s));
↑
これだけのプログラムなのにセグフォります。わかる方、お願いします。 答えられないと嵐ということにするんですね、わかります 追加情報。
char s[4096];
getwd(s); puts(s);
↑だとなぜかセグフォりません。>>4 だとセグフォります。 >>16
getcwdに変えてみました。
char s[4096];
puts(getcwd(s, sizeof s));
↑
でも全く同じようにセグフォります>< >>17
第一引数のサイズがたりなければNULLを返す
戻り値は一旦NULLでないことを確認しなければ危険だ >>19
>>9 だと動作するんだから、NULLが返ってないことは明らか。 >>19
NULLチェック入れてみました。
char s[4096], ss;
ss = getcwd(s, sizeof s);
if (ss != NULL) { puts(ss);}
↑
やっぱりセグフォります>< >>23
char *ss でした。やっぱりセグフォります。 ディレクトリはちゃんと存在するし/bin/pwdコマンドで表示されます。
というか >>9 なら正常動作するんですよ。 原因わかったよ。教えてやったらパンツ脱いで家の周り一周してくれる? 返事ねえな。確かにおれの環境でもこれが Segmentation fault で、
main() { char s[4096]; puts(getcwd(s, 4096)); }
このコードはそのままであることをすれば正常に動くんだが
はやくパンツ脱いで家の周り一周して写真とってUPだ! プログラミングの際の注意事項があります。
コンピュータのCPUの電流が何ボルトであるか調ベておく事が大切です。
32ボルトCPUを搭載したコンピュータでは、
32ボルト用のプログラミングをすること。
64ボルトCPUを搭載したコンピュータでは、
64ボルト用のプログラミングをすること。
これを間違えればプログラムが動きません。 2chでプログラミング関係はID無い板じゃ無理だわ
IDの出るこっちの板でやれよ
UNIXプログラミング質問すれ Part10
http://peace.2ch.net/test/read.cgi/tech/1303113996/ たぶんgetcwdのプロトタイプ宣言がないからだな
unistd.hをインクルールドしてないとオレの環境でも落ちる ☆ 日本の核武装は早急に必須ですわ。☆
総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。 前スレで質問して、「UNIXでもネットトレーディングはできる」と
回答をもらった者です。そこで早速ネット証券の口座を作り、
ゆうちょ銀行100株を買ってみました。
で、買った株券はどこから出てくるのでしょうか?
念のため、CD-ROMドライブを開けてみましたが、
株券は入っていませんでした。
やはりUNIXはネットトレーディングに対応していないのでしょうか? ネットでチケット買って、「どこから出てくるの?」ってマジで聞いてきた奴いたし多少はね? IPOに外れたんだろ。当たった人はちゃんと株券出てきたよ 黒い画面は一般人からしたら
魔術師のマント
たった一つの間違った言葉で
全部壊してしまうようで
恐くてで震える
replは全てソクラテスの子孫だ
私は哲学者ではない
忍耐に耐えれず心が壊れる 金は資源を割り当てるシステムとして正当化されるなら
君が金持ちに値する人間に似ている鏡の国の怪物になりたければ
計算至言か節約できないアルゴリズムになって正当化されるべきだ プログラマはポエマーをバカにする
君の人生は
大局的にはポエむでしか正当化できないのに 空気は生存にとって不可欠だが、
大量にあるために限界費用はゼロになる。
これが幸せの定義である。
幸せとは生存に不可欠な空気のようなもののことだ。 あなたが空気のようであればあなたは幸せである
あなたは窒息するまでそれに本能的に気付かない
理性的にはわかっている
恋人に裏切られたらわかる気持ちのようなものだ
人を恨んではいけないがあなたは人を必ず恨む >>56
でもあいつら文法と入門書しかしらないじゃん POSIXという「名前」はリチャード・ストールマンがIEEEに提案したものである
当てにはならんがw 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
DAKMZBIRMH POSIXのコマンドラインユーティリティにfort77加えられていることに気がついた。
今更かよ!? FORTRAN 77 って行番号の桁がある規格外に古びた言語でしょ
なんでそんなのを2018年にもなって実装してんの fort77コマンドってはるか昔から存在するわけで、新たに実装って話じゃなく、現状を追認して規格化しただけよ。
今さら感は確かにある。 FORTRANなんて捨てろとも思うがどうしても標準化するならfort90実装の方が
良かったなぁ……なぜ今になってfort77実装なのか……。
やっぱUnix畑の連中の脳味噌は理解しがたいわ
ていうかWikipedia見たらfort90ってANSI標準に取り込まれてたんだな。
なら一層POSIXもfort90を採用してくれりゃいいのに。 ちゃんと規格確認したら、fort77は1995年頃の Issue 4 の時点で既に規格に入ってたって書いてあるやんけ。
>>62にまんまと騙された。
おまけに将来規格から削除するかもねとまで書いてあるぞ。 > Issue 7
> SD5-XCU-ERN-97 is applied, updating the SYNOPSIS.
> POSIX.1-2008, Technical Corrigendum 2, XCU/TC2-2008/0102 [546] and XCU/TC2-2008/0103 [546] are applied.
-- fort77 / The Open Group
とあるけど? >>68
それ、内容が更新されたって記載であって、
「fort77加えられている」っていう記載じゃないじゃん。
「fort77加えられ」たって記載は、その上にある
First released in Issue 4.
の方。
でもって、Issue 4 Version 2のリリースは、1990年代半ば。 Fortranとは全く関係ないんですけど、foldコマンドについて質問です。
foldコマンドって所謂マルチバイト対応はしないのでしょうか。
(少なくとも) UTF-8で記述された日本語を含む平文をfoldに通すと
文字の途中のバイト列で切断され、結果的に改行近くの文字が破壊されてしまいました。
素人の発想ですが、バイト列が固定されるUTF-32に対し4の倍数バイト目で切断したならば
文字情報の破損を防げると思ったのですが、これもまた上手く生きませんでした。 >>70
実装依存なのでOSとそのバージョンを明らかにしないと誰も答えられない。 >>67
>>62の「今更かよ!? 」は>>62自身が「気がついた。」ことに対してじゃないのw >>72
そんならOK
だとすると>>68は別人ってことかな。 >>71
すいません。
$ fold --version
fold (GNU coreutils) 8.26
$ uname --operating-system
GNU/Linux
よろしくお願いします。 >>75
わざわざ確認していただいてすいません。
ありがとうございます。
>>76
FreeBSDってGitHubにリポジトリ持ってるんですね。まずそれにビックリしました。
foldはシェルスクリプトでどうにかします。
C言語はともかく移植してリポジトリに登録して……っていう作業はキツいっす 必要は勿論ないけど、よそのソースいじるんだったらバージョン管理するのはもはやデフォでしょ。
自分だってやると思う。
さすがにリポジトリまるまるコピーするとデカイので、こういう場合はRCSを使うかもしれないがw gitなんだからcloneしてそのままいじればいいんだろう?
登録ってなんぞ? FreeBSDのgitリポジトリをcloneすると3GB越えになるから、
たかだか1ファイル6KBのためにそれだけcloneするのは
オッサン的には心が痛む。
FreeBSDの場合、マスターは subversion だから、そっちを
checkout するだけなら 1GBくらいで済むけど、それだと
コミットして自分の変更内容を管理できないし。
で、必要なところだけを部分的に自分専用のリポジトリに
突っ込むのなら、登録って話になると思う。 めんどくさいって言ってる人間がそんなことするのか?
あり得ない妄想膨らませてどうすんの。 まあリポジトリ登録なんてどんなバージョン管理ツール使っても一瞬だから、そこが心理的障壁になる感覚はよく分からんな。 単純に低能なだけだろVCSも碌に扱えないような人間が
ソフトウェア開発に咬むとか笑止 なんでそこまで辛辣になれるのかよく分からん。
日頃よほど辛い目にあってるとかかな。 辛辣っていうかあたりまえでは……
ちょっと口調は荒いけど,OSSに参加するならそれくらい勉強しようよとも思う
ってのが正直なところ 自分の必要に応じて手元でソース改変するか自力で書くかって話
(しかも結局自力で書くことにしたって話)を
「OSSに参加する」って表現する感覚は俺には分からないな。
前者を「OSSを利用する」って表現するなら分かるが。
何をそんなに怒ってるのかまったく分からん。
正義感とかじゃないよな。
自分の思う通りに人が動かないと満足できないってこと? ストールマンもリーナスもキチガイだし多少はね?
まあ86が彼等に匹敵する技量の持ち主だとは到底思えないんだけども(失笑) いやいや、一番過激と目されるストールマンだって、ソースの公開範囲は、そのソフトウェアの利用者だけで良いとしているぞ。
GPLにもそう書いてある。
(ただし、ソースを配布された利用者が、さらにそのソースを再配布することを制限してはいけないので注意)
自分が使うために改変したソースにまで公開義務があるなんて考えてる人って、OSS原理主義者と目されている人にもいない筈。
そんなこと考えるのは、むしろ OSS ライセンスに疎い人なんじゃないか? foldのマルチバイト対応云々言い出した人どうなったんだろ
喧騒に巻き込まれたくないから書き込んでないだけならいいんだけど POSIX的に「絶対に存在する」「中身のある」ファイルってなんだろう。
何かの処理を解説する上でそのファイルを使いたい。
ttps://www.ibm.com/developerworks/jp/linux/library/l-awk1/index.html
例えばawkを紹介するこの記事ではawkで処理するファイルに/etc/passwdを選んでるけど、
ttp://pubs.opengroup.org/onlinepubs/009695399/functions/link.html
ここを見る限り/etc/passwdは任意のようだし…
/dev/nullとかはPOSIXで決ってるけど、テキストファイルじゃないから、自分の用途には合わない。 UnixつーかPOSIXで,
「行の先頭に (同じ) 文字列を加える」ことに特化したコマンドない?
sed でもいいんだけど,Unix哲学に基きたい。
```
foo
bar
buzz
```
っていうのに対して,
```
aaafoo
aaabar
aaabuz
```
っていうのを付け加える。
aaaっていう文字列が書かれたファイルはなくて,できれば引数として渡したい。 そういう各行の編集をするためにこそsedがあるんじゃん pasteでいけると思ったが
> aaaっていう文字列が書かれたファイルはなく
で無理ぽ
for l in $(cat ./file.txt | wc -l); do printf 'aaa\n' >> gen.txt; done
として
paste -d '' gen.txt file.txt
とか。 >>94
pasteとyesを組み合わせた全く新しい格闘技 yes って「あるファイルの終端まで」みたいな判定効いたっけ?無理じゃね?