検索結果 28 件
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: インラインアセンブラ - 引数合っているはず
- 返信数: 7
- 閲覧数: 5860
Re: インラインアセンブラ - 引数合っているはず
ないっぽいので素直に標準ライブラリ使用します
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: インラインアセンブラ - 引数合っているはず
- 返信数: 7
- 閲覧数: 5860
Re: インラインアセンブラ - 引数合っているはず
>> Bull
んーなるほど、、、
64bit_windowsではint 21hは直接だと動ない。
んじゃ64bit_windowsの命令探してくる
んーなるほど、、、
64bit_windowsではint 21hは直接だと動ない。
んじゃ64bit_windowsの命令探してくる
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: インラインアセンブラ - 引数合っているはず
- 返信数: 7
- 閲覧数: 5860
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: インラインアセンブラ - 引数合っているはず
- 返信数: 7
- 閲覧数: 5860
Re: インラインアセンブラ - 引数合っているはず
movじゃ仕様書見たけど無理だねhttps://www.intel.co.jp/content/dam/www/public/ ... 3502_i.pdf
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: インラインアセンブラ - 引数合っているはず
- 返信数: 7
- 閲覧数: 5860
- 2年前
- フォーラム: C言語何でも質問掲示板
- トピック: インラインアセンブラ - 引数合っているはず
- 返信数: 7
- 閲覧数: 5860
インラインアセンブラ - 引数合っているはず
インラインアセンブラでバイナリファイルを開こうとしたが、引数が合わないのか落ちます > 環境 gccgcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0 windows nasm version 2.15.05 compiled on Aug 28 2020 main.c #include <stdio.h> void binary(int*, char*, int*); void main(void){ int a, b; binary(&a, "boot.img",&b); printf("%d %d\n", a...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語でOS開発するにはどうすればいいのか
- 返信数: 2
- 閲覧数: 3270
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語でOS開発するにはどうすればいいのか
- 返信数: 2
- 閲覧数: 3270
C言語でOS開発するにはどうすればいいのか
OS開発するには
ブートローダ -> カーネル -> OS という感じになるのですが何から始めたらいいのかわかりません
そもそもOSの設計自体がわかりません。
なぜ、どの様なことすればわかりません
あまりにも初心者過ぎてなんかすいません
ブートローダ -> カーネル -> OS という感じになるのですが何から始めたらいいのかわかりません
そもそもOSの設計自体がわかりません。
なぜ、どの様なことすればわかりません
あまりにも初心者過ぎてなんかすいません
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: [雑談](コードレビュー)(url解析機 0.1 (試作) )
- 返信数: 0
- 閲覧数: 5960
[雑談](コードレビュー)(url解析機 0.1 (試作) )
URLのパス名を返すプログラムです URLエンコード関数のurlencode_one_textは日本語にしか対応していない模様 コードを汚いですが見てくれるだけでもうれしいです 設計 1. 日本語文字列をuchar.hのmbrtoc32を使用してwhileループしながらchar32_t型の配列にしまう 2.1 "/'をカウントする, そして"."があれば一にする(カウントしない) [lise=2.2] 2.2 もし条件に達成したらuchar.hのc32rtomb使用してchar型の配列に戻す [lise=2.3] 2.3 2.2で戻した配列が英数字以外はコード内にあるurlencode_one...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
Re: マルチバイトの変換後出力がNULL
ゴミが出力されることがあります。 [*]printf("%s\n", a);は、文字列へのポインタ(char*)を要求する%sに対してchar型のデータ(可変長引数の部分なのでintに変換される)を渡しているため、未定義動作になります。 よくある挙動としては、渡された整数を無理やりポインタとして解釈したものは無効な場所を指しているので、値を読み取ることができず、アクセス違反(Segmentation Fault)になることがあります。 [/list] どうしてごみが出るのかね? printfはもともとの仕様? あとこのコードって *ae = *tempae; 普通に値を入れているっと思うだけ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
Re: マルチバイトの変換後出力がNULL
sprintf(rhost, "%s", temphost); の部分が配列ではないかったのかっと思うci 問題の部分を取り出し写したコード #include <stdio.h> #include <string.h> void ae(char* ae){ char tempae[432] = {'\0'}; sprintf(tempae, "%s", "afe)"); printf("%s\n", tempae); *ae = *tempae; printf("%s\n", ae); return; } int main(void) { char a; ae(&a); printf("%s\...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
Re: マルチバイトの変換後出力がNULL
情報がフェイクです
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がNULL
- 返信数: 16
- 閲覧数: 10648
マルチバイトの変換後出力がNULL
int geturlparserfunc(const char* name, char* rhost, char* rpath) { int bmfunc_rlen = 0; int inputlen = strlen(name)+1; char32_t inp32b[50]; int arraycount1 = 0, arraycount2 = 0; mbstate_t mbstate = 0; char temphost[MB_LEN_MAX+1]; char temppath[MB_LEN_MAX+1]; int while_n = 0; int slashconunt = 0, co...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がaが追加される
- 返信数: 4
- 閲覧数: 4846
Re: マルチバイトの変換後出力がaが追加される
大量に未定義動作をしていますね。 コンパラ君... '\0'君も確認できたし大丈夫だろう #define __STDC_WANT_LIB_EXT1__ 1 #include <stdio.h> #include <string.h> #include <uchar.h> #include <limits.h> #include <stdlib.h> int geturlparserfunc(const char*, char*, char*); int main(void) { char hostname, pathname; geturlparserfunc("https://youtub...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がaが追加される
- 返信数: 4
- 閲覧数: 4846
Re: マルチバイトの変換後出力がaが追加される
c32rtomb | Programming Place Plus C言語編 標準ライブラリのリファレンス 注意 あくまで文字の変換なので、末尾に終端文字(U'\0') は付加されない。 まさかそんなことだったとは地味に悔しいですq 一応、動いてくれましたc言語に詳しくないのでバグがまだありそうですが asを初期化しないでwindowsのコマンドプロンプトから実行するとなぜか上手いこといかないのでasを初期化しました。windowsのPowerShellでは上手いこといくのに #include <stdio.h> #include <uchar.h> #include <stdlib.h> ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力がaが追加される
- 返信数: 4
- 閲覧数: 4846
マルチバイトの変換後出力がaが追加される
何故aが追加されるか分かりません #include <stdio.h> #include <uchar.h> #include <stdlib.h> #include <string.h> int main(void) { char32_t in[] = U"http://google.com"; // or "z\u00df\u6c34\U0001F34C" mbstate_t mbstate = {0}; char rpath[MB_LEN_MAX+5]; char* as; if (in[0] =='/'){ printf("\n/を発見した\n"); } size_t bmfunc_r...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: (コードレビュー)(url解析機)[雑談]
- 返信数: 7
- 閲覧数: 5981
Re: (コードレビュー)(url解析機)[雑談]
バグ探しで設計の3と4の間に<code>printf("temppath:\t %s\n", rhost); printf("temphost:\t %s\n", rpath); </code>を入れたですがp6やpr/などが表示されていてこれを何を意味するのか分かりません。 <code> #define __STDC_WANT_LIB_EXT1__ 1 #include <stdio.h> #include <string.h> #include <uchar.h> #include <limits.h> #include <stdlib.h> int geturlparserfunc(co...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: (コードレビュー)(url解析機)[雑談]
- 返信数: 7
- 閲覧数: 5981
Re: (コードレビュー)(url解析機)[雑談]
#2とはどこの所ですか
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: (コードレビュー)(url解析機)[雑談]
- 返信数: 7
- 閲覧数: 5981
Re: (コードレビュー)(url解析機)[雑談]
いくつか改善したけど何故か出力しませんでした何が原因でしょうか? #include <stdio.h> #include <string.h> #include <uchar.h> #include <limits.h> #include <stdlib.h> int geturlparserfunc(const char*, char*, char*); int main(void) { char hostname, pathname; geturlparserfunc("https://golang.org/", &hostname, &pathname); printf("ホスト名; ...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: (コードレビュー)(url解析機)[雑談]
- 返信数: 7
- 閲覧数: 5981
(コードレビュー)(url解析機)[雑談]
ホスト名とパス名をただ返すだけのプログラム 手抜きです バグなど少しでもパフォーマンス改善できる所を教えてくれると嬉しいです 出来ればurl解析機バージョン0.1作りたいと思う 設計 1. 日本語文字列を配列にしまう 2. 配列にした文字列をfor分でワイド文字に変換する 3:1. "/'をカウントする 2. '/"二個になったらrhostを+=で増えるようにする 2:0. '/"が三個になったらcontinueで処理をスキップする 3. '/"が三個以上になったらrpathを+=で増えるようにする 4. 最後にリフレッシュする 参考にしたサイト https://dixq.net/forum/...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力が一文字だけになってしまう
- 返信数: 3
- 閲覧数: 3906
Re: マルチバイトの変換後出力が一文字だけになってしまう
Meta3 さん回答ありがとうございます。Meta3 さんが書きました: ↑3年前char output[MB_LEN_MAX + 1];
のMB_LEN_MAX がマルチバイト1文字を表すのに必要なバイト数(の最大値 =5)だからではないですか
<code>てことはchar output[MB_LEN_MAX * 5];</code>いいのかな?
みけCA さん 回答ありがとうございます。
わざと配列にし、for などでなんやかんや実装した方がいいのか
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: マルチバイトの変換後出力が一文字だけになってしまう
- 返信数: 3
- 閲覧数: 3906
マルチバイトの変換後出力が一文字だけになってしまう
url解析機を作っていてワイド文字に変換した方がアジア系の言語が扱えると聞いたのでマルチバイトを一時的にワイド文字に変換して操作した結果をマルチバイトに変換するという機能です しかしuchar.hライブラリーを試しに使って引っ掛かりましたそれはprintfで出力してもwしか出力しません。 "wwゴリラハローC言語を丸々を出力するにはどうすればいいのでしょうか 環境は os :windows 10, cコンパイラー: MinGW-W64(8.1.0), ライブラリ: uchar.h, stdio.h, limits.h, stdlib.h 現在参考にしているリンク先 https://www.ib...
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: Dxライブラリ 1秒ごとに音
- 返信数: 3
- 閲覧数: 3732
Re: Dxライブラリ 1秒ごとに音
*c言語には自信ありません。
Dxライブラリーではないのですが、
私のやり方では1秒ごとに音の機能をunistdライブラリーのsleep関数で使ってスリープしながら行います。
サンプルコード
#include <unistd.h>
int main(void)
{
sleep(3);
}
下の記事を参考になると思います。
https://linuxjm.osdn.jp/html/LDP_man-pa ... eep.3.html
Dxライブラリーではないのですが、
私のやり方では1秒ごとに音の機能をunistdライブラリーのsleep関数で使ってスリープしながら行います。
サンプルコード
#include <unistd.h>
int main(void)
{
sleep(3);
}
下の記事を参考になると思います。
https://linuxjm.osdn.jp/html/LDP_man-pa ... eep.3.html