小编use*_*.dz的帖子

printf从char数组中添加额外的`FFFFFF`到十六进制打印

请考虑以下简化代码.我想从文件中提取一些二进制数据/流,并以十六进制格式将其打印到标准输出.

我有额外的3个字节0xFFFFFF.怎么了?额外的字节来自哪里?

产量

in:
        2000FFFFFFAF00690033005A00
out:
        2000FFFFFFAF00690033005A00
Run Code Online (Sandbox Code Playgroud)

program.c

#include <stdio.h>
#include <stdlib.h>    

int main(int argc, char** argv) {

    int i;
    char raw[10] = {0x20,0x00,0xAF,0x00,0x69,0x00,0x33,0x00,0x5A,0x00};
    FILE *outfile;
    char *buf;

    printf("in:\n\t");
    for( i=0; i<10; i++ )
        printf("%02X", raw[i]);

    outfile = fopen("raw_data.bin", "w+b");

    fwrite(raw, 1, 10, outfile);

    buf = (char *) malloc (32 * sizeof(char));
    fseek(outfile, 0, SEEK_SET);
    fread(buf, 1, 10, outfile);

    printf("\nout:\n\t");
    for( i=0; i<10; i++ )
        printf("%02X", buf[i]);

    printf("\n");

    fclose(outfile);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c arrays printf

12
推荐指数
2
解决办法
1万
查看次数

将阿拉伯语写入图像时出错

我以前的相关问题:

php使用图像:用阿拉伯语,ttf字体写完整的单词

我的问题是:

  • 如果我想写入????图像,则显示为? ? ? ?
  • 好吧,我修复了它现在输出: ? ? ? ?

使用此功能:

function arab($word){

       $w = explode(' ',$word) ;

       $f = array(array('?','?'),'?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?');

       $t = array(array('?_','?_'),'?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_','?_');

       $my_arab = '' ;

       foreach($w as $wo)
        {
             $r  = array() ;

             $wo = str_replace($f , $t ,$wo);

             $ne = explode('_', $wo) ;

             foreach($ne as $new) {
                $new = str_replace('_','',$new) ;
                array_unshift($r , $new);
             }

            $my_arab .=  ' '.implode('',$r) ;

        }

     return trim($my_arab) ;

}
Run Code Online (Sandbox Code Playgroud)

但新问题是:

? ? ? ?

(分开的字母)它应该是: …

php arabic imagettftext

11
推荐指数
2
解决办法
2590
查看次数

XChangeProperty() 总是失败

我正在学习使用 xlib,但无法XChangeProperty()为我工作。

我有一个简单的程序可以成功显示一个窗口。但是调用XChangeProperty()总是失败并显示错误代码error 1 (BadRequest)

有人能告诉我我做错了什么吗?

这是我更改属性的代码。

static void
change_prop(Display *display, Window window)
{
    unsigned char some_text[40] = "hello world!";
    int retval;
    Atom my_atom;

    my_atom = XInternAtom(display, "PERSONAL_PROPERTY", False);
    if (my_atom == None)
    {
          printf("### failed to create atom with name PERSONAL_PROPERTY\n");
          return;
    }

    retval = XChangeProperty(display,   /* connection to x server */
                             window,    /* window whose property we want to change */
                             my_atom,   /* property name */
                             XA_STRING, /* type of property */ …
Run Code Online (Sandbox Code Playgroud)

xlib

5
推荐指数
1
解决办法
3170
查看次数

Gnome 3.10与3.14中的扩展事件循环

我写了这个辅助功能扩展:

这适用于Gnome Shell v3.14和v3.16中的假设,但不适用于v3.10.它显示了重新启动它之后唯一的初始键盘修饰符状态,并且在此之后永远不会更新它.

这里是完整的代码:

const St = imports.gi.St;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
const Gdk = imports.gi.Gdk

let button, label, keymap;

function _update() {
    let symbols = "????????";
    let state = keymap.get_modifier_state();    
    label.text = " ";
    for (var i=0; i<=8; i++ ) { 
        if (state & 1<<i) {
            label.text += symbols[i];
        } else {
            //label.text += "";
        }
    }
    label.text += " ";
}

function init() {
    button = new St.Bin({ style_class: 'panel-button',
                          reactive: …
Run Code Online (Sandbox Code Playgroud)

gtk gnome event-loop gnome-shell-extensions gjs

5
推荐指数
1
解决办法
277
查看次数

终结者切换不透明度键盘快捷方式

您是否知道任何键盘快捷键可以调整或切换终端的不透明度而无需右键单击并进入首选项?如果可能的话,这将是如此甜蜜.

linux terminal ubuntu terminator

4
推荐指数
1
解决办法
1252
查看次数

具有少量父设备属性的udev规则

我需要复杂的通用udev规则来确定USB设备插入任何USB集线器的某个端口.所以,我必须结合设备树的不同层的父属性...

我有这个:

$udevadm info --query=all --name=/dev/ttyUSB0 --attribute-walk

  looking at device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

            . . .

  looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2.4':
    KERNELS=="1-1.2.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
            ...

  looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.2':
    KERNELS=="1-1.2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{devpath}=="1.2"
    ATTRS{idVendor}=="0835"
            ...
    ATTRS{idProduct}=="8500"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="USB2.0 Hub"

            . . .
Run Code Online (Sandbox Code Playgroud)

然后我构建了这样的udev规则来识别某个USB集线器的某个端口:

KERNEL=="ttyUSB[0-9]*", KERNELS=="1-1.2.4", ATTRS{idVendor}=="0835", ATTRS{idProduct}=="8500", SYMLINK+="port1"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用来自不同父层的属性时,它无法正常工作.

我知道udev仅支持来自一个特定父设备的附加属性.但我真的需要获得结合我设备的2个父节点的属性的规则

有人可以提出解决方案吗?得到它有什么诀窍吗?

linux debian udev raspberry-pi

3
推荐指数
1
解决办法
4716
查看次数

XDefaultScreen和XDefaultScreenOfDisplay有什么区别?

XDefaultScreen和之间有什么区别XDefaultScreenOfDisplay?我可以看到它们分别返回一个整数和一个结构指针,但是:

  • 这些返回值有什么用?
  • 您何时会选择一个?
  • 为什么仍然有2个功能?

xlib

2
推荐指数
1
解决办法
844
查看次数