小编MiJ*_*iJo的帖子

android:uses-permission和uses-permission有什么区别?

这两种语法有什么区别. android:uses-permissionuses-permission.例如:

<android:uses-permission
  android:name="android.permission.READ_EXTERNAL_STORAGE"
  android:maxSdkVersion="18" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

当我创建一个从存储中读取的活动时,第一个由Android Studio自动添加到清单中.另外,为什么它添加了一个android:maxSdkVersion属性,特别是当我targetSdkVersion将项目设置为21 时将其设置为18 .

android android-manifest android-layout android-permissions android-studio

9
推荐指数
1
解决办法
1991
查看次数

可以在线程之间共享相同的epoll文件描述符吗?

在几个线程中共享相同的Epoll fd(不是socket fd)是否安全?如果是这样,每个线程是否必须将自己的事件数组传递给epoll_wait(2)它们,还是可以共享它?

例如

    void *thread_func(void *thread_args) {
      // extract socket_fd, epoll_fd, &event, &events_array from 
      //     thread_args
      // epoll_wait() using epoll_fd and events_array received from main
      // now all threads would be using same epoll_fd and events array 
    }

    void main( void ) {
      // create and bind to socket
      // create events_fd
      // allocate memory for events array
      // subscribe to events EPOLLIN and EPOLLET
      // pack the socket_fd, epoll_fd, &events, &events_array into 
      //   thread_args struct.

      // …
Run Code Online (Sandbox Code Playgroud)

c linux epoll pthreads

7
推荐指数
1
解决办法
2938
查看次数

复制传递给函数的字符串作为C中的参数

我想不出我的问题的正确标题,所以在这里.我正在尝试学习C,以下代码来自我正在遵循的教程.

struct Person {
    char *name;
    int age;
    int height;
    int weight;
};

struct Person *Person_create(char *name, int age, int height, int weight){
    struct Person *who = malloc(sizeof(struct Person));
    assert(who != NULL);

    who->name = strdup(name);
    who->age = age;
    who->height = height;
    who->weight = weight;

    return who;
}

void Person_destroy(struct Person *who){
    assert(who != NULL);

    free(who->name);
    free(who);
}

int main(int argc, char *argv[]){
    struct Person *joe = Person_create("Joe Alex", 32, 64, 140);

    ........
Run Code Online (Sandbox Code Playgroud)

我的问题是Person_create功能为什么我们要复制name到新的内存位置who->name.为什么我们不能只who->name …

c string struct strdup

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

当堆上请求大块内存时,如果RAM上没有连续空间,它是否在磁盘上分配(交换)?

在Linux中,当请求(使用calloc / malloc)内存时,如果请求大小的连续块不可用,内核是否将多个单独的内存块映射到一个虚拟块并将其交给应用程序或者是否在磁盘上分配?

如果它是在磁盘上分配的,当一个足够大的块变为空闲时,它会自动移动到RAM中还是它在磁盘上生存?

c linux heap memory-management

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